Submission #145510

#TimeUsernameProblemLanguageResultExecution timeMemory
145510BlagojceElection (BOI18_election)C++11
28 / 100
3045 ms1488 KiB
#include <bits/stdc++.h>
#define fr(i, n, m) for(int i = (n); i < (m); i ++)
#define pb push_back
#define st first
#define nd second
#define pq priority_queue
#define all(x) begin(x),end(x)

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
ll const inf = 1e9;
ll const mod = 1e9 + 7;
ld const eps = 1e-9;

int main()
{
        int n, q;
        string s;
        cin >> n;
        cin >> s;
        cin >> q;
        int nulify[n];
        memset(nulify, -1, sizeof(nulify));

        fr(t, 0, q){
                int l, r;
                cin >> l >> r;
                l --, r --;
                int c = 0;
                int cnt = 0;
                fr(i, l, r + 1){
                        if(s[i] == 'C') c ++;
                        else c --;
                        if(c < 0){
                                cnt ++;
                                nulify[i] = t;
                                c ++;
                        }
                }
                c = 0;
                for(int i = r; i >= l; i --){
                        if(s[i] == 'C') c ++;
                        else if(nulify[i] != t) c --;
                        if(c < 0){
                                cnt ++;
                                c ++;
                        }
                }
                cout << cnt << endl;

        }
        return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...