#include<bits/stdc++.h>
using namespace std;
const int MAXN = 10086;
#define dou double
#define ll long long int
int a[MAXN],b[MAXN],ans[MAXN];
int main()
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
//处理长度
ll len1 = s1.length();
ll len2 = s2.length();
//判断答案符号
bool flag = (len1<len2) || (len1==len2)&&(s1<s2);
if(flag)
{
swap(s1,s2);
swap(len1,len2);
}
//逆序存入
for(int i=0;i<len1;i++)
{
a[len1-i-1] = s1[i]-'0';
}
for(int i=0;i<len2;i++)
{
b[len2-i-1] = s2[i]-'0';
}
//进行减法
for(int i=0;i<len1;i++)
{
if(a[i]<b[i])
{
a[i+1]--;
a[i] += 10;
}
ans[i] = a[i] - b[i];
}
//判断位数,去除前导0
int h = len1-1;
while(ans[h]==0 && h>=1) h--;
if(flag) printf("-");
for(int i=h;i>=0;i--)
{
printf("%d",ans[i]);
}
return 0;
}
洛谷编译器逆天bug,测试点全对,但是一片WA,求助