Submission #711585

#TimeUsernameProblemLanguageResultExecution timeMemory
711585RaulAndrei01Calvinball championship (CEOI15_teams)C++14
100 / 100
194 ms636 KiB
#include <iostream> using namespace std; using ll = long long; const int mod = 1e6 + 7; const int nmax = 1e4 + 2; ll dp[2][nmax]; ll a[nmax]; int main() { ll n; cin >> n; ll maxx = 0; for (int i = 1; i <= n; i++) { cin >> a[i]; for (int k = n; k > 0; k--) { dp[i%2][k] = dp[(i-1)%2][k-1] + dp[(i-1)%2][k] * k; // cout << i << ' ' << k << ' ' << dp[i % 2][k] << '\n'; dp[i%2][k] %= mod; } dp[i%2][maxx] += a[i] - 1; dp[i%2][maxx] %= mod; maxx = max(maxx , a[i]); } ll ans = 0; for (int i = 1; i <= n; i++) { ans += dp[n % 2][i]; ans %= mod; } cout << (ans + 1) % mod << '\n'; 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...