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
AC × 3
AC × 10
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