Submission #281170

#TimeUsernameProblemLanguageResultExecution timeMemory
281170AQTCalvinball championship (CEOI15_teams)C++14
70 / 100
18 ms7296 KiB
#include <bits/stdc++.h> using namespace std; int N; int arr[1005]; long long dp[1005][1005]; const long long MOD = 1000007; long long solve(int n, int m, bool border){ if(n == N+1){ return 1; } if(!border && dp[n][m]){ return dp[n][m]; } int lim = m+1; if(border){ lim = arr[n]; } long long ans = 0; ans += (lim-1) * solve(n+1, m, 0); ans += solve(n+1, max(lim, m), border); ans %= MOD; if(!border){ dp[n][m] = ans; } return ans; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N; for(int i = 1; i<=N; i++){ cin >> arr[i]; } cout << solve(1, 0, 1); }
#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...