Submission #64187

#TimeUsernameProblemLanguageResultExecution timeMemory
64187Bodo171Election (BOI18_election)C++14
28 / 100
3042 ms1420 KiB
#include <iostream>
#include <fstream>
using namespace std;
const int nmax=100005;
string str;
int s[nmax],l[nmax],r[nmax];
int n,i,m,st,dr,ans,j,p,take,p1,p2,u1,u2;
int sum(int l,int r)
{
    if(l>r) return 0;
    return s[r]-s[l-1];
}
int main()
{
   // freopen("data.in","r",stdin);
    cin>>n;
    cin>>str;
    cin>>m;
    for(int cnt=1;cnt<=m;cnt++)
    {
        cin>>st>>dr;ans=0;
        p1=p2=1;u1=u2=0;
        for(j=st;j<=dr;j++)
            if(str[j-1]=='C')
              l[++u1]=j;
        for(j=st;j<=dr;j++)
           if(str[j-1]=='C')
              r[++u2]=j;
        for(j=st;j<=dr;j++)
            if(str[j-1]=='T')
        {
            while(p2<=u2&&r[p2]<j) p2++;
            if(p1<=u1&&l[p1]<j&&p2<=u2)
            {
                p1++;p2++;
            }
            else
                ans++;
        }
        cout<<ans<<'\n';
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...