Submission #1232831

#TimeUsernameProblemLanguageResultExecution timeMemory
1232831AdnanboiElection (BOI18_election)C++20
28 / 100
3092 ms1100 KiB
#include <bits/stdc++.h>

using namespace std;

const int MOD = 1e9 + 7;

void solve(){
	int n, q;	
	cin>>n;
	string s;
	cin>>s;
	vector<int> nums(n);
	for(int i = 0; i < n; i++){
		if(s[i] == 'T') nums[i] = -1;
		else nums[i] = 1;
	}
	cin>>q;
	while(q--){
		int l, r;
		cin>>l>>r;
		l--; r--;
		int ans = 0, sum = 0;
		vector<bool> iskoristen(n, false);
		for(int i = l; i <= r; i++){
			sum += (iskoristen[i] ? 0 : nums[i]);
			if(sum < 0){
				sum = 0;
				iskoristen[i] = true;
				ans++;
			}
		}
		sum = 0;
		for(int i = r; i >= l; i--){
			sum += (iskoristen[i] ? 0 : nums[i]);
			if(sum < 0){
				sum = 0;
				iskoristen[i] = true;
				ans++;
			}
		}
		cout<<ans<<'\n';
	}
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int t = 1;
	//cin>>t;
	while(t--){
		solve();
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...