提交了好几遍都在#2#10上WA了
下了个点在机子上试了半天,发现cin能输入的字符串长度只有4094(样例二长度是10001),网上搜了几次说是缓冲区大小有关,但看题解都是直接cin的
但是关闭O2之后就AC了
求解惑,悬关
代码
#include <bits/stdc++.h>
using namespace std;
#define MAXN 101000
int main(){
string x,y;
cin>>x;
cin>>y;
if((x<y&&x.size()==y.size())||x.size()<y.size()){
swap(x,y);
printf("-");
}
int a[MAXN],b[MAXN],c[MAXN],lena=x.size(),lenb=y.size();
for(int i=1;i<=lena;i++)a[i]=x[lena-i]-'0';
for(int i=1;i<=lenb;i++)b[i]=y[lenb-i]-'0';
int lenc=max(lena,lenb);
for(int i=1;i<=lenc;i++){
c[i]+=a[i]-b[i];
if(i!=lenc&&c[i]<0){
c[i]+=10;
c[i+1]-=1;
}
}
while(c[lenc]==0&&lenc!=1)lenc--;
while(lenc>0)printf("%d",c[lenc--]);
return 0;
}