Submission #3416846


Source Code Expand

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <math.h>
#define mod 1000000007
typedef long long ll;
using namespace std;

#define N 100010
ll inv[N],fac[N],ifac[N];

int main(){
  int n;
  cin>>n;
  int a[n+1]={};
  int p[n+1]={};
  for(int i=0;i<=n;i++) p[i]=-1;

  int first=0,second=0;
  for(int i=0;i<=n;i++){
    cin>>a[i];
    if(p[a[i]]>=0){
      first=p[a[i]];
      second=i;
    }else{
      p[a[i]]=i;
    }
  }

  inv[0]=1;inv[1]=1;fac[1]=1;ifac[1]=1;fac[0]=1;ifac[0]=1;
  for(int i=2;i<=n+2;i++){
    inv[i]=(-mod/i)*inv[mod%i]%mod;
    fac[i]=fac[i-1]*i%mod;
    ifac[i]=ifac[i-1]*inv[i]%mod;
    //cout<<inv[i]<<" "<<fac[i]<<" "<<ifac[i]<<endl;
  }

  cout<<n<<endl;
  ll num=first+n-second;
  //cout<<num<<endl;
  for(int i=2;i<=n+1;i++){
    ll ans=0,sum=0;
    ans=fac[num]*ifac[i-1]%mod*ifac[num-i+1]%mod;
    sum=fac[n+1]*ifac[i]%mod*ifac[n+1-i]%mod;
    ans=(ans+mod)%mod;
    sum=(sum+mod)%mod;
    //cout<<i<<" "<<ans<<" "<<sum<<endl;
    //if(num==0) cout<<sum<<endl;
    cout<<(sum-ans+mod)%mod<<endl;
  }

  return 0;
}

Submission Info

Submission Time
Task D - 11
User snow39
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1141 Byte
Status RE
Exec Time 212 ms
Memory 4352 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 600
Status
AC × 2
WA × 1
AC × 3
WA × 2
RE × 5
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 191 ms 4352 KB
mx.txt RE 135 ms 3328 KB
rnd_0.txt RE 212 ms 3328 KB
rnd_1.txt RE 161 ms 2688 KB
rnd_2.txt RE 131 ms 1024 KB
rnd_3.txt WA 33 ms 896 KB
rnd_4.txt RE 117 ms 1280 KB
sample1.txt AC 1 ms 256 KB
sample2.txt AC 1 ms 256 KB
sample3.txt WA 1 ms 256 KB