#include<bits/stdc++.h>
#define MAXN 0x7ffffff
//#pragma GCC optimize(2)
using namespace std;
void sub( string s1, string s2);
const int N=10050;
int main()
{
// freopen("P2142_3","r",stdin);
string s1,s2;
cin>>s1>>s2;
// cout<<s1.compare(s2);
sub(s1,s2);
//add(s1,s2);
return 0;
}
void sub( string s1, string s2)
{
int a[N],b[N],c[N];
bool x=false,flag=true;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
if( s1.compare(s2)<0 )
{
flag=false;
string temp;
temp=s1,s1=s2,s2=temp;
}
a[0]=s1.length(),b[0]=s2.length();
int maxl=max(a[0],b[0]);
for(int i=1;i<=a[0];++i) a[i]=s1[a[0]-i]-'0';
for(int i=1;i<=b[0];++i) b[i]=s2[b[0]-i]-'0';
int j;
for(j=1;j<=maxl;++j)
{
if(a[j]-b[j]<0) a[j]+=10,a[j+1]--;
c[j]=a[j]-b[j];
}
if(!flag) cout<<"-";
for(int i=maxl;i>=1;--i)
{
if(!x && c[i]==0) continue;
x=true;
cout<<c[i];
}
if(!x) cout<<"0";
}
测试点1 3 4 5WA 在测试的时候发现两个短的字符串结果是正确的,但是两条长的结果就错了