Submission #3390906
Source Code Expand
typedef long long ll; #include <bits/stdc++.h> using namespace std; template<typename A, size_t N, typename T> void Fill(A (&array)[N], const T &val){ std::fill( (T*)array, (T*)(array+N), val ); } const ll MOD = 1000000007; const int SIZE = 110000; ll inv[SIZE],fac[SIZE],finv[SIZE]; void make(){ fac[0]=fac[1]=1; finv[0]=finv[1]=1; inv[1]=1; for(int i=2;i<SIZE;i++){ inv[i]=MOD-inv[MOD%i]*(MOD/i)%MOD; fac[i]=fac[i-1]*(ll) i%MOD; finv[i]=finv[i-1]*inv[i]%MOD; } } ll nCr(ll n,ll r){ if(n<r) return 0; return fac[n] * finv[r] % MOD * finv[n-r] % MOD; } ll n,a[100010]; bool used[100010]; ll ka = 0; ll cnt1,cnt2,cnt3; int main() { make(); std::cin >> n; for (int i = 0; i < n+1; i++) { std::cin >> a[i]; if(!used[a[i]]){ used[a[i]] = true; }else{ ka = a[i]; } } cnt1 = distance(a,find(a,a+n+1,ka)); cnt2 = distance(a,find(a + cnt1+1,a+n+1,ka))-cnt1-1; cnt3 = n+1 - cnt1 - cnt2-2; for (int i = 1; i <= n+1; i++) { std::cout << (nCr(n+1,i) - nCr(cnt1+cnt3,i-1) + MOD*2)%MOD << std::endl; } }
Submission Info
Submission Time | |
---|---|
Task | D - 11 |
User | erbowl |
Language | C++14 (GCC 5.4.1) |
Score | 600 |
Code Size | 1212 Byte |
Status | AC |
Exec Time | 180 ms |
Memory | 4608 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 | 180 ms | 4608 KB |
mx.txt | AC | 180 ms | 4608 KB |
rnd_0.txt | AC | 150 ms | 4352 KB |
rnd_1.txt | AC | 131 ms | 4096 KB |
rnd_2.txt | AC | 39 ms | 3200 KB |
rnd_3.txt | AC | 34 ms | 3200 KB |
rnd_4.txt | AC | 57 ms | 3328 KB |
sample1.txt | AC | 5 ms | 2816 KB |
sample2.txt | AC | 5 ms | 2816 KB |
sample3.txt | AC | 5 ms | 2816 KB |