Submission #591524

#TimeUsernameProblemLanguageResultExecution timeMemory
591524andrei_boacaCalvinball championship (CEOI15_teams)C++14
100 / 100
346 ms612 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const ll mod=1e6+7; ll n,v[10005],dp[3][10005],ans; int need[10005]; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>v[i]; int maxim=0; for(int i=1;i<=n;i++) { bool newmax=0; if(v[i]>maxim) { maxim=v[i]; newmax=1; } need[n-i]=maxim-newmax; } need[0]=1; for(int i=1;i<=n;i++) dp[0][i]=i+1; need[1]=dp[0][need[1]]; for(int i=2;i<=n;i++) { for(int j=1;j<=n;j++) { ll val=(1LL*j*dp[0][j])%mod; val=(val+dp[0][j+1])%mod; dp[1][j]=val; } need[i]=dp[1][need[i]]; for(int j=1;j<=n;j++) dp[0][j]=dp[1][j]; } maxim=0; for(int i=1;i<=n;i++) { bool newmax=0; if(v[i]>maxim) { maxim=v[i]; newmax=1; } ll val=(1LL*((v[i]-1)*need[n-i]))%mod; ans=(ans+val)%mod; } ans++; ans%=mod; cout<<ans; return 0; }

Compilation message (stderr)

teams.cpp: In function 'int main()':
teams.cpp:43:14: warning: variable 'newmax' set but not used [-Wunused-but-set-variable]
   43 |         bool newmax=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...