Submission #573318

#TimeUsernameProblemLanguageResultExecution timeMemory
573318vladislav11Calvinball championship (CEOI15_teams)C++14
70 / 100
57 ms65536 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const ll MOD = 1e6 + 7; int n; vector<int> a; //vector< vector<ll> > dp; ll dp[10100][10100]; int main () { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; a.resize( n ); for ( auto& el : a ) cin >> el; //dp.assign( n+1, vector<ll>( n+1, 0 ) ); for ( int i=1; i<=n; i++ ) dp[0][i] = 1; for ( int i=1; i<=n; i++ ) for ( int j=1; j<=n; j++ ) { if ( j+1 <= n ) dp[i][j] = ( j*dp[i-1][j] + dp[i-1][j+1] ) % MOD; else dp[i][j] = j*dp[i-1][j] % MOD; } ll ans = 1; int maxi = 0; for ( int i=0; i<n; i++ ) { for ( int j=1; j<a[i]; j++ ) ans = ( ans + dp[n-i-1][ max(maxi,j) ] ) % MOD; maxi = max( maxi, a[i] ); } cout << ans; 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...