Submission #573339

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