Submission #6508583
Source Code Expand
#include <iostream> #include <algorithm> #include <string> #include <vector> #include <cmath> #include <map> #include <queue> #include <iomanip> #include <set> #define MOD 1000000007 #define mkp make_pair typedef long long ll; using namespace std; #define MAX_N 200020 ll inv[MAX_N+10],fac[MAX_N+10],ifac[MAX_N+10]; void setComb(){ inv[0]=1;inv[1]=1;fac[1]=1;ifac[1]=1;fac[0]=1;ifac[0]=1; for(int i=2;i<MAX_N;i++){ inv[i]=(-MOD/i)*inv[MOD%i]%MOD; fac[i]=fac[i-1]*i%MOD; ifac[i]=ifac[i-1]*inv[i]%MOD; } return; } ll comb(ll n,ll k){ if(n<k||n<0||k<0) return 0; else return ((fac[n]*ifac[k]%MOD*ifac[n-k]%MOD+MOD)%MOD); } ll hcomb(ll n,ll r){ if(n==0&&r==0) return 1; else if(n<0||r<0) return 0; else return comb(n+r-1,r-1); } int main(){ int N; cin>>N; vector<ll> A(N); for(int i=0;i<N;i++) cin>>A[i]; vector<pair<int,ll>> v; int len=0,val=0; for(int i=0;i<N;i++){ if(A[i]!=-1){ if(len==0) continue; v.push_back(mkp(len+1,A[i]-val)); len=0; val=0; }else{ if(len==0) val=A[i-1]; len++; } } setComb(); ll ans=1; for(int i=0;i<v.size();i++){ ll a,b; tie(a,b)=v[i]; ll n=a+b-1; b=min(b,n-b); ll res=1; for(ll j=0;j<b;j++){ ll z=(n-j)%MOD; res=res*z%MOD; } for(int j=1;j<=b;j++){ ll z=inv[j]%MOD; res=res*z%MOD; } ans=ans*res%MOD; } cout<<(ans+MOD)%MOD<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - タコヤ木 |
User | snow39 |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1596 Byte |
Status | AC |
Exec Time | 6 ms |
Memory | 4992 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 50 / 50 | 30 / 30 | 20 / 20 | ||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt |
Subtask2 | sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt |
Subtask3 | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask3_04.txt, subtask3_05.txt, subtask3_06.txt, subtask3_07.txt, subtask3_08.txt, subtask3_09.txt, subtask3_10.txt, subtask3_11.txt, subtask3_12.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 5 ms | 4992 KB |
sample_02.txt | AC | 5 ms | 4992 KB |
sample_03.txt | AC | 5 ms | 4992 KB |
subtask1_01.txt | AC | 5 ms | 4992 KB |
subtask1_02.txt | AC | 5 ms | 4992 KB |
subtask1_03.txt | AC | 5 ms | 4992 KB |
subtask1_04.txt | AC | 5 ms | 4992 KB |
subtask1_05.txt | AC | 5 ms | 4992 KB |
subtask1_06.txt | AC | 5 ms | 4992 KB |
subtask1_07.txt | AC | 5 ms | 4992 KB |
subtask1_08.txt | AC | 5 ms | 4992 KB |
subtask1_09.txt | AC | 5 ms | 4992 KB |
subtask1_10.txt | AC | 5 ms | 4992 KB |
subtask1_11.txt | AC | 5 ms | 4992 KB |
subtask1_12.txt | AC | 5 ms | 4992 KB |
subtask2_01.txt | AC | 5 ms | 4992 KB |
subtask2_02.txt | AC | 5 ms | 4992 KB |
subtask2_03.txt | AC | 5 ms | 4992 KB |
subtask2_04.txt | AC | 5 ms | 4992 KB |
subtask2_05.txt | AC | 5 ms | 4992 KB |
subtask2_06.txt | AC | 5 ms | 4992 KB |
subtask2_07.txt | AC | 5 ms | 4992 KB |
subtask2_08.txt | AC | 5 ms | 4992 KB |
subtask2_09.txt | AC | 5 ms | 4992 KB |
subtask2_10.txt | AC | 5 ms | 4992 KB |
subtask2_11.txt | AC | 5 ms | 4992 KB |
subtask2_12.txt | AC | 5 ms | 4992 KB |
subtask3_01.txt | AC | 5 ms | 4992 KB |
subtask3_02.txt | AC | 5 ms | 4992 KB |
subtask3_03.txt | AC | 5 ms | 4992 KB |
subtask3_04.txt | AC | 6 ms | 4992 KB |
subtask3_05.txt | AC | 5 ms | 4992 KB |
subtask3_06.txt | AC | 5 ms | 4992 KB |
subtask3_07.txt | AC | 5 ms | 4992 KB |
subtask3_08.txt | AC | 6 ms | 4992 KB |
subtask3_09.txt | AC | 5 ms | 4992 KB |
subtask3_10.txt | AC | 6 ms | 4992 KB |
subtask3_11.txt | AC | 5 ms | 4992 KB |
subtask3_12.txt | AC | 6 ms | 4992 KB |