CCCPaste

Untitled

#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
 

using namespace std;

const int maxn=350005;
int n;
vectorg[maxn];
bool vis[maxn];
vectorv;
int st[3*maxn];

void btree(int L,int R,int pos)
{
    if(L==R)
    {
        st[pos]=0;
        return ;
    }
    int mid=(L+R)/2;
    btree(L,mid,2*pos);
    btree(mid+1,R,2*pos+1);
    st[pos]=st[2*pos]+st[2*pos+1];
}

void u(int L,int R,int idx,int pos)
{
    if(L==R)
    {
        st[pos]=1;
        return ;
    }
    int mid=(L+R)/2;
    if(idx<=mid)
    {
        u(L,mid,idx,2*pos);
    }
    else
    {
        u(mid+1,R,idx,2*pos+1);
    }
    st[pos]=st[2*pos]+st[2*pos+1];
}

int query(int L,int R,int i,int j,int pos)
{
    //L  R   i L R j L R
    if(i<=L && R<=j)
    {
        return st[pos];
    }
    if(j>n;
    memset(vis,0,sizeof vis);
    for(int i=1;i<=n;i++)
    {
        char c;
        cin>>c;
        if(c=='K')
        {
            g[i-1].push_back(i-1);
        }
        else
        {
            int num;
            cin>>num;
            g[num-1].push_back(i-1);
        }
    }
    for(int idx=0;idx>ans;
    for(int i=0;i