Submission #1517549
Source Code Expand
#include <bits/stdc++.h> using namespace std; #define pb push_back typedef long long ll; const ll INF = 1000000000000000000ll; const ll MOD = 1000000007ll; const double EPS = 1e-8; const int MAX_N = 100005; ll fact[MAX_N]; ll factinv[MAX_N]; long long mod_pow(long long x, long long n, long long mod){ long long res = 1; while(n > 0){ if(n & 1) res = res * x % mod; x = x*x % mod; n >>= 1; } return res; } //階乗のリストを作る void make_fact_tbl(long long n, long long mod){ fact[0] = 1; for(long long i=1; i<=n; i++){ fact[i] = fact[i-1] * i; fact[i] %= mod; } } //階乗の逆元のリストを作る void make_factinv_tbl(long long n, long long mod){ factinv[0] = 1; //0の逆元は存在しない for(long long i=1; i<=n; i++){ factinv[i] = mod_pow(fact[i], mod-2, mod); } } //組み合わせの計算に必要な情報の作成 void comb_init(long long n, long long mod){ make_fact_tbl(n, mod); make_factinv_tbl(n, mod); } //組み合わせの計算 long long comb(long long n, long long k, long long mod){ if(n < k) return 0; if(k == 0 || n-k == 0) return 1; //printf("n:%lld k:%lld n-k:%lld\n", fact[n], factinv[k], factinv[n-k]); return ((fact[n] * factinv[k]) % mod) * factinv[n-k] % mod; } int main(void) { //ios_base::sync_with_stdio(false); //cin.tie(0); int n; cin >> n; comb_init(n+1, MOD); map<int, int> a; ll l = -1; ll r = -1; for(int i=0; i<n+1; i++){ int t; cin >> t; if(a.find(t) == a.end()){ a[t] = i; }else{ l = a[t]; r = i; } } for(int k=1; k<=n+1; k++){ ll ans = comb(n+1, k, MOD); ans = (ans + MOD - comb(l+n-r, k-1, MOD)) % MOD; cout << ans << endl; } return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 11 |
User | tanutarou |
Language | C++14 (GCC 5.4.1) |
Score | 600 |
Code Size | 1770 Byte |
Status | AC |
Exec Time | 281 ms |
Memory | 7424 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 | 281 ms | 7424 KB |
mx.txt | AC | 281 ms | 7424 KB |
rnd_0.txt | AC | 227 ms | 6144 KB |
rnd_1.txt | AC | 193 ms | 5376 KB |
rnd_2.txt | AC | 54 ms | 1664 KB |
rnd_3.txt | AC | 45 ms | 1408 KB |
rnd_4.txt | AC | 81 ms | 2432 KB |
sample1.txt | AC | 1 ms | 256 KB |
sample2.txt | AC | 1 ms | 256 KB |
sample3.txt | AC | 1 ms | 256 KB |