大整数乘法求解

输入两大整数(都是200位内 非负 没前导零) 求其相乘
没看出什么问题 提交网站却显示WA 求点拨

#include
#include
using namespace std;
int main(){
int cc=0;
char str[201],ptr[201];
int st[201]={0};
int pt[201]={0};
int a[410]={0};
cin>>str;
cin>>ptr;
int ls=strlen(str);
int lp=strlen(ptr);

for(int i=0;i<200;i++){               //将字符串以逆向数组形式存起来
    if(i<ls) st[i]=str[ls-i-1]-'0';
    }

for(int ii=0;ii<200;ii++){            //同上
    if(ii<lp) pt[ii]=ptr[lp-ii-1]-'0';
    }

for(int j=0;j<lp;j++){               //将第一个大整数与第二个按位相乘
        int b[410]={0};

        for(int t=0;t<lp+ls+2;t++){  //求出第一整数和另一其中一位的结果
        b[t+j+1]+=(st[t]*pt[j]+b[t+j])/10;
        b[t+j]=(st[t]*pt[j]+b[t+j])%10;
        }

        for(int k=0;k<lp+ls+2;k++){ 
        if(a[k]+b[k]>9) a[k]=a[k]+b[k]-10,a[k+1]++;
        else a[k]=a[k]+b[k];
        }           
    }

for(int i=409;i>=0;i--){
    if(a[i]) cc=1;
    if(cc) cout<<a[i];
} 

if((ls==1&&st[0]==0)||(lp==1&&pt[0]==0)) cout<<"0";
cout<<endl;
return 0;

}