Submission #63644

#TimeUsernameProblemLanguageResultExecution timeMemory
63644khohkoCalvinball championship (CEOI15_teams)C++17
20 / 100
24 ms7648 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define fr first #define sc second #define ARRS ((ll)(2e6+500)) #define MAX ((ll)(1e6+100)) #define MOD ((ll)1e9+7) #define mi(a,b) a=min((a),(b)) ll n,m,k,p,l,r,q; ll a[ARRS]; int f[1005][1005][2]; ll slv(ll i,ll c,ll e=0){ if(i==n)return 1; if(f[i][c][e])return f[i][c][e]-1; if(e){ f[i][c][e]=c*slv(i+1,c,e)+slv(i+1,c+1,e)+1; return f[i][c][e]-1; } else { ll pas=0; if(a[i]==c+1){ pas+=c*slv(i+1,c,1); pas+=slv(i+1,c+1,0); } else { pas+=(a[i]-1)*slv(i+1,c,1); pas+=slv(i+1,c,0); } pas%=MOD; f[i][c][e]=pas+1; return pas; } } int main(){ #ifdef KHOKHO freopen("in.in","r",stdin); freopen("out.out","w",stdout); #endif cin>>n; for(int i=0; i<n; i++)cin>>a[i]; cout<<slv(0,0,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...