Backspaces @ 2024-10-05 20:02:27
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
string a,b;
cin>>a>>b;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int max=a.size()+b.size(),min=b.size();
int c[min][max];
for(int i=0;i<min;i++){
for(int j=0;j<max;j++){
c[i][j]=0;
}
}
int o=0;
for(int p=0;p<min;p++){
for(int i=0;i<a.size();i++){
int n=(a[i]-'0')*(b[p]-'0')+c[p][i+o];
c[p][o+i]=n%10;
int j=o+i;
while(n>=10){
n=n/10+c[p][j+1];
c[p][j+1]=n%10;
n/=10;
j++;
}
}
o++;
}
int sum[max];
for(int &i:sum){
i=0;
}
for(int j=0;j<max;j++){
for(int i=0;i<min;i++){
sum[j]+=c[i][j];
}
if(j<max-1){
sum[j+1]=sum[j+1]+sum[j]/10;
}
sum[j]=sum[j]%10;
}
reverse(sum,sum+max);
int w=0;
while(sum[w]==0){
w++;
}
if(w==max)cout<<0;
while(w<max){
cout<<sum[w];
w++;
}
}