样例过了,第二个点也过了,但是其他全WA?(疑惑.jpg)这贞德合理吗?
#include<bits/stdc++.h>
#define gc getchar()
using namespace std;
int n,m;
bitset <50004> f;//可理解为bool数组
int pre[50004];//手动模拟栈,记录上一个被炸掉的房子
int cnt;
int ans;
char c;
int t;
signed main()
{
read(n,m);
while (m--)
{
c=gc;
if (c=='\n'||c==' ')
c=gc;
switch (c)
{
case 'D':
read(t);
f[pre[++cnt]=t]=1;
break;
case 'Q':
read(t);
if (cnt==0)
print(n,'\n');
else if (f[t])
puts("0");
else
{
ans=1;
for (ri i=t-1;i>0&&!f[i];i--)
ans++;
for (ri i=t+1;i<=n&&!f[i];i++)
ans++;
print(ans,'\n');
}
break;
case 'R':
f[pre[cnt--]]=0;
break;
}
}
return 0;
}
PS:read()和print()是自己写的快读和快输,没有问题