#include<bits/stdc++.h>
#define max(x,y) x>=y?x:y
using namespace std;
int numa[10005],numb[10005],ans[10005];
signed main(){
string a,b;
cin>>a>>b;
if(b.size()>a.size()||(b.size()==a.size()&&b>a)){
swap(a,b);
putchar('-');
}
for(int i=0;i<a.size();i++){
if(a[i]!='0'){
a=a.substr(i);
break;
}
}
for(int i=0;i<b.size();i++){
if(b[i]!='0'){
b=b.substr(i);
break;
}
}
for(int i=0;i<a.size();i++){
numa[a.size()-i]=a[i]-'0';
}
for(int i=0;i<b.size();i++){
numb[b.size()-i]=b[i]-'0';
}
int len=max(a.size(),b.size()),x=0;
for(int i=1;i<=len;i++){
ans[i]=numa[i]-numb[i]+x;
if(ans[i]<0){
ans[i]+=10;
x=-1;
}else{
x=0;
}
}
// while(ans[len]==0||len>1) len--;
for(int i=len;i>=1;i--) cout<<ans[i];
return 0;
}
注释掉的判断前导零错了,解开了10分
话说是不是太水了