fzu 1894 志愿者选拔(单调队列)

边输入边维护,G->出队,Q->output。
弱鸡代码:

#include
#include
#include
#include
using namespace std;
#define maxn 1000010
int rp[maxn],rm[maxn];
int main()
{
    char op[5],na[10];
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int x=0,y=-1;
        int cnt=0,ans=0;
        while(scanf("%s",op)&&op[0]!='E')
        {
            if(op[0]=='C')
            {
                cnt++;
                scanf("%s%d",na,&rp[cnt]);
                while(x<=y&&rp[rm[y]]if(op[0]=='G')
            {
                ans++;
                if(ans>=rm[x])
                {
                    ++x;
                }
            }
            if(op[0]=='Q')
            {
                if(anscout<else cout<<"-1"<

你可能感兴趣的:(队列)