提出几点问题:
- 减法的时候要注意负数问题,请使用
((a-b)%p+p)%p 来处理减法出现负数的情况。(来自这里)
- 输入时请使用 '\r' 判断结束,亦或者在 循环时 使用 '\r' 判断结束!
输入处理请看代码(删了部分,具体在这):
void get(string &s){
s.clear();
char ch;
while(((ch=cin.get())==' ')||ch=='\n'||ch=='\r');
do{
if(ch==' ') continue;
s.push_back(ch);
}while((ch=cin.get())!='\n'&&ch!=EOF&&ch!='\r');
}
int main(){
string s; s.reserve(60); get(s);
ll n, j; cin>>n;
for(ll i=0;i<3;++i) num=ched[i], ans[i]=calc(s);
for(ll i=0;i<n;++i){
get(s);
try{ for(j=0;j<3;++j){ num=ched[j]; if(calc(s)!=ans[j])break; }} catch(...){continue;}
if(j==3) cout<<char('A'+i);
}
return 0;
}