Submission #475234

#TimeUsernameProblemLanguageResultExecution timeMemory
475234stefantagaCalvinball championship (CEOI15_teams)C++14
70 / 100
287 ms65540 KiB
#include <bits/stdc++.h> #define MOD 1000007 using namespace std; long long sum,v[10005],fact[100005],n,i,maxi,din[2][100005],inainte,acum,j; map <pair <long long,long long > , long long > m; int main() { #ifdef HOME ifstream cin("date.in"); ofstream cout("date.out"); #endif // HOME cin>>n; for (i=1;i<=n;i++) { cin>>v[i]; } maxi=0; for (i=1;i<=n;i++) { m[{n-i,maxi}]=1; maxi=max(maxi,v[i]); } for (i=0;i<=n+5;i++) { din[0][i]=1; } for (i=1;i<=n;i++) { inainte=1-i%2; acum=i%2; for (j=0;j<=n+5;j++) { din[acum][j]=((j*din[inainte][j])%MOD+din[inainte][j+1])%MOD; if (m[{i,j}]==1) { m[{i,j}]=din[acum][j]; } } } maxi=0; for (i=1;i<=n;i++) { sum=(sum+((v[i]-1)*m[{n-i,maxi}])%MOD)%MOD; maxi=max(maxi,v[i]); } cout<<sum+1; 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...