Submission #539007

# Submission time Handle Problem Language Result Execution time Memory
539007 2022-03-18T08:20:23 Z Blundergod Sum Zero (RMI20_sumzero) C++17
0 / 100
1000 ms 824 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

void solve() {
	int n;
	cin >> n;
	vector<long long>x(n + 1, 0);
	for (int i = 1; i <= n; i++) {
		cin >> x[i];
	}
	vector<long long>p(n + 1, 0);
	for (int i = 1; i <= n; i++) {
		p[i] = x[i] + p[i - 1];
	}

	auto solveQuery = [&](int l, int r) {

		unordered_map<long long, long long>PrevSum;

		for (int i = l; i <= r; i++) {
			PrevSum[p[i]] = -1e9;
		}

		PrevSum[p[l - 1]] = 0;

		long long sum = 0;

		vector<long long>dp(n + 1, 0);

		for (int i = l; i <= r; i++) {
			sum = p[i];
			dp[i] = dp[i - 1];
			dp[i] = max(dp[i], 1 + PrevSum[sum]);
			PrevSum[sum] = max(PrevSum[sum], dp[i]);
		}
		cout << dp[r] << endl;

	};
	int q;
	cin >> q;
	for (int i = 0; i < q; i++) {
		int l, r;
		cin >> l >> r;
		solveQuery(l, r) ;
	}
}
int main() {

	int T;
	T = 1;
	//cin >> T;
	while (T--) {
		solve();
	}
}
# Verdict Execution time Memory Grader output
1 Correct 641 ms 492 KB Output is correct
2 Correct 262 ms 604 KB Output is correct
3 Execution timed out 1080 ms 824 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 641 ms 492 KB Output is correct
2 Correct 262 ms 604 KB Output is correct
3 Execution timed out 1080 ms 824 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 641 ms 492 KB Output is correct
2 Correct 262 ms 604 KB Output is correct
3 Execution timed out 1080 ms 824 KB Time limit exceeded
4 Halted 0 ms 0 KB -