Submission #69076

#TimeUsernameProblemLanguageResultExecution timeMemory
69076Bodo171Calvinball championship (CEOI15_teams)C++14
100 / 100
991 ms1308 KiB
/* Will you ever win? */ #include <iostream> #include <fstream> using namespace std; const int nmax=10005; const long long mod=1000*1000+7; long long c[2][nmax],bell[nmax],mx[nmax],pw[nmax]; long long ans; int v[nmax]; int n,i,j,use; int main() { // freopen("data.in","r",stdin); ios_base::sync_with_stdio(false); cin>>n; for(i=1;i<=n;i++) { cin>>v[i]; mx[i]=max(mx[i-1],1LL*v[i]); } bell[0]=1; ans=v[n]-1;c[0][0]=1; for(i=1;i<n;i++) { use=1-use; c[use][0]=1; for(j=1;j<=i;j++) { c[use][j]=(c[1-use][j]+c[1-use][j-1])%mod; } pw[0]=v[n-i]-1; for(j=1;j<=i;j++) pw[j]=(1LL*pw[j-1]*mx[n-i-1])%mod; for(j=0;j<i;j++) { bell[i]=(1LL*bell[i]+(bell[j]*c[1-use][j]))%mod; } for(j=0;j<=i;j++) ans=(ans+1LL*(bell[i-j]*c[use][j])*pw[j])%mod; } cout<<(ans+1)%mod; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...