Submission #1295532

#TimeUsernameProblemLanguageResultExecution timeMemory
1295532kaloyanElection (BOI18_election)C++20
0 / 100
5 ms332 KiB
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

const int MAXN = 500000 + 10;

int n, m;
std::string s;
char a[MAXN];

void solve()
{
    std::cin >> n >> s;

    for(int i = 1 ; i <= n ; ++i)
    {
        a[i] = s[i - 1];
    }
    
    std::cin >> m;
    for(int i = 1 ; i <= m ; ++i)
    {
        int l, r;
        std::cin >> l >> r;

        int left = 0, right = 0;
        int cap, tony;

        cap = 0, tony = 0;
        for(int i = l ; i <= r ; ++i)
        {
            if(a[i] == 'C') cap += 1;
            else tony += 1;

            if(tony > cap)
            {
                left += 1;
                tony -= 1;
            }
        }

        cap = 0, tony = 0;
        for(int i = r ; i >= l ; --i)
        {
            if(a[i] == 'C') cap += 1;
            else tony += 1;

            if(tony > cap)
            {
                right += 1;
                tony -= 1;
            }
        }

        std::cout << std::max(left, right) << "\n";
    }
}

void fastIO()
{
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);
    std::cout.tie(NULL);
}

int main()
{
    fastIO();
    solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...