제출 #1213975

#제출 시각아이디문제언어결과실행 시간메모리
1213975k1r1t0Mizuyokan 2 (JOI23_mizuyokan2)C++20
0 / 100
123 ms2616 KiB
#include <bits/stdc++.h>

using namespace std;
#define int long long

const int N = 251000;
const int Q = 51000;

int n, q, l[N], a[N], dp[N];

int solve() {
	for (int i = 0; i <= n + 1; i++)
		dp[i] = 0;
	dp[1] = 1;
	for (int i = 0; i <= n; i++) {
		int sum = 0;
		for (int j = i + 1; j <= n; j++) {
			sum += a[j];
			if (a[i] < sum && a[j + 1] < sum)
				dp[j + 1] = max(dp[j + 1], dp[i] + 2);
		}
	}
	return dp[n + 1] - 1;
}

int32_t main() {
	ios::sync_with_stdio(0); cin.tie(0);
	cin >> n;
	for (int i = 1; i <= n; i++)
		cin >> l[i];
	cin >> q;
	for (int i = 1; i <= q; i++) {
		int x, y, aa, bb; cin >> x >> y >> aa >> bb; aa++;
		l[x] = y;
		for (int i = 1; i <= bb - aa + 1; i++)
			a[i] = l[i + aa - 1];
		n = bb - aa + 1;
		a[n + 1] = 0;
		cout << solve() << '\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...