Submission #1397482
Source Code Expand
#include <iostream> #define REP(i, a, n) for(int i = ((int) a); i < ((int) n); i++) #define MOD 1000000007 using namespace std; typedef long long ll; int N, A[100010]; ll fact[1000010]; ll pow_mod(ll a, ll b) { ll x = 1, y = a; while(b > 0) { if(b % 2) x = (x * y) % MOD; y = (y * y) % MOD; b /= 2; } return x % MOD; } ll mod_inv(ll n) { return pow_mod(n, MOD - 2); } ll comb_mod(ll n, ll k) { return (fact[n] * mod_inv(fact[k]) % MOD) * mod_inv(fact[n - k]) % MOD; } int main(void) { cin >> N; REP(i, 0, N + 1) cin >> A[i]; int s; int pos[100010]; REP(i, 0, N + 1) pos[i] = -1; REP(i, 0, N + 1) { if(pos[A[i]] == -1) pos[A[i]] = i; else s = pos[A[i]] + (N - i); } fact[0] = 1; REP(i, 1, 100010) fact[i] = (fact[i - 1] * i) % MOD; cout << N << endl; REP(i, 2, N + 2) cout << (comb_mod(N + 1, i) - (i - 1 <= s ? comb_mod(s, i - 1) : 0) + MOD) % MOD << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 11 |
User | kshinya |
Language | C++14 (GCC 5.4.1) |
Score | 600 |
Code Size | 981 Byte |
Status | AC |
Exec Time | 250 ms |
Memory | 4480 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 600 / 600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample1.txt, sample2.txt, sample3.txt |
All | 1.txt, mx.txt, rnd_0.txt, rnd_1.txt, rnd_2.txt, rnd_3.txt, rnd_4.txt, sample1.txt, sample2.txt, sample3.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
1.txt | AC | 250 ms | 4480 KB |
mx.txt | AC | 219 ms | 4480 KB |
rnd_0.txt | AC | 197 ms | 4224 KB |
rnd_1.txt | AC | 163 ms | 4096 KB |
rnd_2.txt | AC | 50 ms | 3328 KB |
rnd_3.txt | AC | 43 ms | 3328 KB |
rnd_4.txt | AC | 69 ms | 3456 KB |
sample1.txt | AC | 2 ms | 3072 KB |
sample2.txt | AC | 2 ms | 3072 KB |
sample3.txt | AC | 2 ms | 3072 KB |