诸位大佬,求助,80WA
#include<bits/stdc++.h>
using namespace std;
int a[50000001],b[50000001];
string x,y,z;
int main ( )
{
cin>>x>>y;
a[0]=x.size();
b[0]=y.size();
for (int i=0;2*i<x.size();i++)
{
swap(x[i],x[x.size()-1-i]);
}
for (int i=0;i<x.size();i++)
{
a[i+1]=x[i]-'0';
}
for (int i=0;2*i<y.size();i++)
{
swap(y[i],y[y.size()-1-i]);
}
for (int i=0;i<y.size();i++)
{
b[i+1]=y[i]-'0';
}
a[0]=max(a[0],b[0]);
for (int i=1;i<=a[0];i++)
{
a[i]-=b[i];
if (a[i]<0)
{
a[i+1]--;
a[i]+=10;
}
}
if (a[a[0]+1]!=0)
{
for (int i=0;i<=6000;i++)
{
a[i]=0;
b[i]=0;
}
z=y;
y=x;
x=z;
cout<<"-";
a[0]=x.size();
b[0]=y.size();
for (int i=0;i<x.size();i++)
{
a[i+1]=x[i]-'0';
}
for (int i=0;i<y.size();i++)
{
b[i+1]=y[i]-'0';
}
a[0]=max(a[0],b[0]);
for (int i=1;i<=a[0];i++)
{
a[i]-=b[i];
if (a[i]<0)
{
a[i+1]--;
a[i]+=10;
}
}
}
while (a[a[0]]==0&&a[0]>1)a[0]--;
for (int i=a[0];i>=1;i--)cout<<a[i];
}