一些问题(关于O2)(悬关)
查看原帖
一些问题(关于O2)(悬关)
846713
Joker_IV楼主2024/4/7 19:36

提交了好几遍都在#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;
}
2024/4/7 19:36
加载中...