제출 #1227973

#제출 시각아이디문제언어결과실행 시간메모리
1227973Ghulam_JunaidElection (BOI18_election)C++20
28 / 100
7 ms580 KiB
#include <bits/stdc++.h>
using namespace std;

const int N = 2005;
int n, q, val[N];
string s;

int main(){
    cin >> n >> s >> q;
    s = '_' + s;

    vector<int> vec;
    while(q--){
        int l, r;
        cin >> l >> r;
        int ans = 0;

        vec.clear();
        val[l - 1] = 0;
        for (int i = l; i <= r; i ++){
            val[i] = val[i - 1];
            if (s[i] == 'C') val[i]++;
            else val[i]--;

            if (val[i] == -1){
                val[i] = 0;
                vec.push_back(i);
            }
        }
        
        val[r + 1] = 0;
        for (int i = r; i >= l; i --){
            val[i] = val[i + 1];
            if (s[i] == 'C') val[i]++;
            else val[i]--;

            if (val[i] == -1){
                val[i] = 0;
                bool done = 0;
                if (vec.size() and vec.back() >= i){
                    ans++;
                    vec.pop_back();
                }
                else ans++;
            }
        }
        ans += vec.size();

        cout << ans << endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...