#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
const int MAXN = 500000 + 10;
int n, m;
std::string s;
char a[MAXN];
bool del[MAXN];
void solve()
{
std::cin >> n >> s;
for(int i = 1 ; i <= n ; ++i)
{
a[i] = s[i - 1];
}
int cap, tony;
std::cin >> m;
for(int i = 1 ; i <= m ; ++i)
{
int l, r;
std::cin >> l >> r;
cap = 0, tony = 0;
for(int i = l ; i <= r ; ++i)
{
if(a[i] == 'C') cap += 1;
else tony += 1;
if(tony > cap)
{
del[i] = 1;
tony -= 1;
}
}
cap = 0, tony = 0;
for(int i = r ; i >= l ; --i)
{
if(a[i] == 'C') cap += 1;
else tony += (!del[i]);
if(tony > cap)
{
del[i] = 1;
tony -= 1;
}
}
int ans = 0;
for(int i = l ; i <= r ; ++i)
{
if(del[i])
{
ans += 1;
del[i] = 0;
}
}
std::cout << ans << "\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... |