Submission #1206761

#TimeUsernameProblemLanguageResultExecution timeMemory
1206761PenguinsAreCuteMizuyokan 2 (JOI23_mizuyokan2)C++20
0 / 100
351 ms1496 KiB
#include <bits/stdc++.h> using namespace std; int solve(vector<int> v) { int n = v.size(); int dp[n+2]; long long pre[n+2]; pre[0] = 0; for(int i=0;i<n;i++) pre[i+1] = pre[i] + v[i]; pre[n+1] = pre[n]; memset(dp,-2,sizeof(dp)); dp[0] = 0; dp[1] = 1; for(int i=2;i<n+2;i++) { for(int j=0;j<i;j++) if(pre[i-1] - pre[j] > max(v[i-1], j?v[j-1]:0)) dp[i] = max(dp[i], dp[j] + 2); } return max(dp[n+1] - 1, dp[n]); } int main() { int n; cin >> n; int l[n]; for(int i=0;i<n;i++) cin >> l[i]; int q; cin >> q; while(q--) { int x, y, a, b; cin >> x >> y >> a >> b; l[--x] = y; cout << solve(vector<int>(l+a,l+b)) << "\n"; } }
#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...