本来30分的,改了一下RE了9个
我记得RE不是下标超了吗,为什么我会RE
#include<bits/stdc++.h>
using namespace std;
string t1,t2;
const int N=10e7+5;
int a[N]={},b[N]={},l,c=0;
void Plus(int a[],int b[]){
for(int i=0;i<l;i++){
if((a[i]-b[i])<0){a[i]+=10;a[i+1]--;if(i==0)l--;};
a[i]=a[i]-b[i];
}
}
int main(){
cin>>t1>>t2;
bool p=0,f=0;
if(stoi(t1)<stoi(t2)){p=1;swap(t1,t2);}
l=max(t1.size(),t2.size());
for(int i=t1.size()-1;i>=0;i--)a[c++]=t1[i]-'0';
c=0;
for(int i=t2.size()-1;i>=0;i--)b[c++]=t2[i]-'0';
Plus(a,b);
if(p)cout<<'-';
for(int i=l-1;i>=0;i--){
if(a[i]==0&&f)cout<<0;
else if(!f&&a[i]!=0){cout<<a[i];f=1;}
else if(a[i]!=0)cout<<a[i];
}
return 0;
}