Submission #1240436

#TimeUsernameProblemLanguageResultExecution timeMemory
1240436MateiKing80Election (BOI18_election)C++20
28 / 100
3095 ms952 KiB
#include <bits/stdc++.h>

using namespace std;

signed main() {
	int n;
	cin >> n;
	string s;
	cin >> s;
	int q;
	cin >> q;
	vector<int> last(n, q + 1);
	while (q --) {
		int l, r;
		cin >> l >> r;
		l --, r --;
		int sp = 0, ans = 0;
		for (int i = l; i <= r; i ++) {
			if (last[i] > q && s[i] == 'C')
				sp ++;
			else if (last[i] > q && s[i] == 'T')
				sp --;
			if (sp < 0) {
				last[i] = q;
				sp ++;
				ans ++;
			}
		}
		sp = 0;
		for (int i = r; i >= l; i --) {
			if (last[i] > q && s[i] == 'C')
				sp ++;
			else if (last[i] > q && s[i] == 'T')
				sp --;
			if (sp < 0) {
				last[i] = q;
				sp ++;
				ans ++;
			}
		}
		cout << ans << '\n';
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...