KiloCranes @ 2024-01-05 11:06:02
#include<bits/stdc++.h>
using namespace std;
const int N=2005;
char s1[N],s2[N];
int len_s1,len_s2,len_s=1,len_t,a1[N],a2[N],s[N],t[N];
int main(){
cin>>s1;
cin>>s2;
len_s1=strlen(s1);
len_s2=strlen(s2);
for(int i=0;i<len_s1;i++)
a1[i]=s1[len_s1-i-1]-'0';
for(int i=0;i<len_s2;i++)
a2[i]=s2[len_s2-i-1]-'0';
for(int i=0;i<len_s1;i++){
memset(t,0,sizeof(t));
len_t=1;
for(int j=0;j<len_s2;j++){
t[j+i]+=a1[i]*a2[j];
if(t[j+i]>=10){
t[j+i+1]+=t[j+i]/10;
t[j+i]%=10;
len_t=max(len_t,j+i+2);
}
len_t=max(len_t,j+i+1);
}
len_s=max(len_s,len_t);
for(int j=0;j<len_t;j++){
s[j]+=t[j];
if(s[j]>=10){
s[j+1]+=1;
s[j]-=10;
len_s=max(len_s,j+2);
}
len_s=max(len_s,j+1);
}
}
while(s[len_s-1]==0&&len_s>1)
len_s--;
for(int i=len_s-1;i>=0;i--)
cout<<s[i];
return 0;
}