제출 #63650

#제출 시각아이디문제언어결과실행 시간메모리
63650khohkoCalvinball championship (CEOI15_teams)C++17
80 / 100
1066 ms932 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)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 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;} if(e){ f[N][c][e]=c*f[P][c][e]+f[P][c+1][e]; f[N][c][e]%=MOD; } else { f[N][c][e]=0; 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...