rt
作者有点坑,在输入的时候加了一些无关的空格和换行
建议谨慎用 getchar ,还是用 cin 好
如果你还是要用 getchar ,像这样(仅给出主函数)
int main()
{
// freopen("P1531_1.in","r",stdin);
// freopen("P1531.out","w",stdout);
n = input(),m = input();
for(int i = 1;i <= n;i++)
ipt[i] = input();
ST.build(1,n,1);
for(int i = 1;i <= m;i++)
{
char ch = getchar();
int a = input(),b = input();
if(ch == 'Q') print(ST.query(a,b,1));
else ST.update(a,b,1);
}
}
变成这样:
int main()
{
// freopen("P1531_1.in","r",stdin);
// freopen("P1531.out","w",stdout);
n = input(),m = input();
for(int i = 1;i <= n;i++)
ipt[i] = input();
ST.build(1,n,1);
for(int i = 1;i <= m;i++)
{
char ch = getchar();
while(ch < 'A' || ch > 'Z') ch = getchar();
int a = input(),b = input();
if(ch == 'Q') print(ST.query(a,b,1));
else ST.update(a,b,1);
}
}
也就是加上了这一行while(ch < 'A' || ch > 'Z') ch = getchar();
但愿对你A掉这道题有帮助