제출 #1206761

#제출 시각아이디문제언어결과실행 시간메모리
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...