Submission #281159

#TimeUsernameProblemLanguageResultExecution timeMemory
281159AQTCalvinball championship (CEOI15_teams)C++14
70 / 100
1062 ms7552 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; for(int i = 1; i<=lim; i++){ ans += solve(n+1, max(i, m), border && (i == lim)); } 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...