为什么下载了测试点测试过了 可测试点还是飚红
查看原帖
为什么下载了测试点测试过了 可测试点还是飚红
1004282
wangzx1楼主2024/8/24 09:37
#include<bits/stdc++.h>
using namespace std;
bool f;
int aa(string c,string d){
	bool f;
	f=0;
	for(int i=1;i<c.size();i++){
		if(c[i]!=d[i]){
			if(c[i]>d[i]){
				f=1;
				return 1;
			}else return 2;
		}
	}
	if(f==0){
		return 0;
	}
}
int main(){
	f=0;
	string a,b;
	vector<int> c;
	c.clear();
	getline(cin,a);
	getline(cin,b);
	if(a.size()==1&&b.size()==1){
		cout<<a[0]-b[0];
		return 0;
	}
	if(b.size()==a.size()){
		if(aa(a,b)==0){
			cout<<0;
			return 0;
		}
		if(aa(a,b)==1){
		}
		if(aa(a,b)==2){
			swap(a,b);
			f=1;
		}
	}
	if(b.size()>a.size()){
		swap(a,b);
		f=1;
	}
	
	reverse(a.begin(), a.end());
	reverse(b.begin(), b.end());
	int ans=b.size()-a.size();
	ans=abs(ans);
	if(a.size()>b.size()){
		for(int i=0;i<ans;i++) b=b+'0';
	}
	int jw=0;
	for(int i=0;i<a.size();i++){
		if(int(a[i])-int(b[i])-jw<0){
			c.push_back(int(a[i])-int(b[i])+10-jw);
			jw=1;
		}else{
			c.push_back(int(a[i])-int(b[i])-jw);
			jw=0;
		}
	}
	if(f==1){
		cout<<"-";
	}
	while(c[c.size()-1]==0){
		c.pop_back();
	}
	int p=c.size();
	for(int i=0;i<p;i++){
		cout<<c.back();
		c.pop_back();
	}
}
2024/8/24 09:37
加载中...