#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |