Submission #527222

#TimeUsernameProblemLanguageResultExecution timeMemory
527222joelauCalvinball championship (CEOI15_teams)C++14
70 / 100
44 ms65540 KiB
#include <bits/stdc++.h> using namespace std; long long N, A[10005], p = 1000007; vector<long long> dp[10005]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> N; for (long long i = 1; i <= N; ++i) cin >> A[i]; for (long long i = 1; i <= N+1; ++i) dp[i].assign(i+1,1); for (long long i = N; i > 0; --i) for (long long j = 1; j <= i; ++j) dp[i][j] = (dp[i+1][j] * j + dp[i+1][j+1]) % p; long long ans = 1, most = 0; for (long long i = 1; i <= N; ++i) { ans = (ans + dp[i+1][most] * min(most,A[i]-1)) % p; for (long long j = most+1; j < A[i]; ++j) ans = (ans + dp[i+1][j]) % p; most = max(most,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...