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
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 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