Submission #63653

#TimeUsernameProblemLanguageResultExecution timeMemory
63653khohkoCalvinball championship (CEOI15_teams)C++17
90 / 100
1058 ms1020 KiB
#include<bits/stdc++.h> //#pragma GCC optimize("O3") 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)1e6+7) #define mi(a,b) a=min((a),(b)) ll n,m,k,p,l,r,q; ll a[20000]; ll f[2][10005][2]; int main(){ #ifdef KHOKHO freopen("in.in","r",stdin); freopen("out.out","w",stdout); #endif ios::sync_with_stdio(0); cin>>n; for(int i=0; i<n; i++)cin>>a[i]; ll N=0,P=1; for(ll i=n; i>=0; i--){ for(ll c=n; c>=0; c--){ for(ll e=0; e<2; e++){ if(i==n){f[N][c][e]=1;continue;} f[N][c][e]=0; if(e) f[N][c][e]=c*f[P][c][e]+f[P][c+1][e]; else { if(a[i]==c+1){ f[N][c][e]+=c*f[P][c][1]; f[N][c][e]+=f[P][c+1][0]; } else { f[N][c][e]+=(a[i]-1)*f[P][c][1]; f[N][c][e]+=f[P][c][0]; } } f[N][c][e]%=MOD; } } swap(N,P); } cout<<f[P][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...