求助,10和11TLE了。。。
查看原帖
求助,10和11TLE了。。。
697201
whitenightdaye楼主2022/7/14 17:14
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,b,g[50010],ans[50010],s=1,f,h=1;
char a;
bool c[50010];
inline int read()
{
    int x=0;
    bool flag=1;
    char c=getchar();
    while(c<'0'||c>'9')
    {
        if(c=='-')
            flag=0;
        c=getchar();
    }
    while(c>='0'&&c<='9')
    {
        x=(x<<1)+(x<<3)+c-'0';
        c=getchar();
    }
    return (flag?x:~(x-1));
}
inline void write(int x)
{
    if(x<0)
    {
        putchar('-');
        x=-x;
    }
    if(x>=10)
    {
        write(x/10);
    }
    putchar(x%10+'0');
    return;
}
int main()
{
    n=read();
    m=read();
    for(int i=1;i<=m;++i)
    {
        cin>>a;
        if(a=='D')
        {
        	b=read();
            c[b]=true;
            g[h]=b;
            h++;
        }
        else if(a=='R')
        {
        	h--;
            c[g[h]]=false;
        }
        else if(a=='Q')
        {
        	b=read();
			for(int i=b;i>=1;--i)
			{
				if(c[i]==true)
				{
					break;
				}
				else
				{
					f++;
				}
			}
			for(int i=b;i<=n;++i)
			{
				if(c[i]==true)
				{
					break;
				}
				else
				{
					f++;
				}
			}
			if(f!=0)
			{
				ans[s]=f-1;
			}
			f=0;
			s++;
        }
    }
    for(int i=1;i<=s-1;++i)
    {
        write(ans[i]);
        printf("\n");
    }
    return 0;
}
2022/7/14 17:14
加载中...