提交时间:2023-10-14 08:51:53

运行 ID: 106686

#include<bits/stdc++.h> using namespace std; string a1,b1; int a[12505],b[12505],s[12505],ss[12505],sss[25010],lena,lenb,lens,lenss,lensss,flag; int main() { cin>>a1>>b1; lena=a1.length(); lenb=b1.length(); for(int i=1;i<=lena;i++) a[(i-1)/4+1]=a[(i-1)/4+1]*10+(a1[lena-(4-i%4)]-48); for(int i=1;i<=lenb;i++) b[(i-1)/4+1]=b[(i-1)/4+1]*10+(b1[lenb-(4-i%4)]-48); lena=(lena-1)/4+1; lenb=(lenb-1)/4+1; lenss=lens=max(lena,lenb)+1; lensss=lena+lenb; for(int i=1;i<=lens;i++) { s[i]+=(a[i]+b[i]); if(s[i]>=10000) { s[i+1]+=(s[i]/10000); s[i]%=10000; } ss[i]-=flag; flag=0; if(a[i]<b[i]) { flag=1; ss[i]+=(a[i]+10000-b[i]); } else ss[i]+=(a[i]-b[i]); for(int j=1;j<=lenb;j++) { sss[i+j-1]+=(a[i]*b[j]); if(sss[i+j-1]>=10000) { sss[i+j]+=(sss[i+j-1]/10000); sss[i+j-1]%=10000; } } } while(!s[lens]&&lens>1) lens--; while(!ss[lenss]&&lenss>1) lenss--; while(!sss[lensss]&&lensss>1) lensss--; for(int i=lens;i>=1;i--) cout<<s[i]; cout<<'\n'; for(int i=lenss;i>=1;i--) cout<<ss[i]; cout<<'\n'; for(int i=lensss;i>=1;i--) cout<<sss[i]; return 0; }