Submission #207841

#TimeUsernameProblemLanguageResultExecution timeMemory
207841stefdascaCalvinball championship (CEOI15_teams)C++14
70 / 100
12 ms8440 KiB
#include<bits/stdc++.h> using namespace std; const int mod = 1000007; int n, v[10002]; int dp[1002][1002]; int add(int a, int b) { int ans = a+b; if(ans >= mod) ans -= mod; return ans; } long long mul(long long a, long long b) { return (a * b) % mod; } int main() { cin >> n; int maxi = 1; for(int i = 1; i <= n; ++i) { cin >> v[i]; dp[i][max(v[i], maxi) - (v[i] > maxi)] = v[i] - 1; maxi = max(maxi, v[i]); } for(int i = 1; i <= n; ++i) for(int j = 1; j <= i; ++j) { dp[i+1][j] = add(dp[i+1][j], mul(dp[i][j], j)); dp[i+1][j+1] = add(dp[i+1][j+1], dp[i][j]); } int sum = 1; for(int i = 1; i <= n; ++i) sum = add(sum, dp[n][i]); cout << sum; 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...