#include #include #include #define max(x,y) ((x)>(y)?(x):(y)) using namespace std; char s1[510],s2[510],s[1010]; int t; void Add(int A[],int a,int B[],int b,int C[],int &c) { int i,j,k,*p,*q; if(a=1;j--,i--) C[i]+=q[j]; for(i=a;i>=0;i--)C[i-1]+=C[i]/10,C[i]%=10; if(C[0]) for(c++,i=c;i>=1;i--) C[i]=C[i-1]; for(i=1;!C[i]&&i<=c;i++); k=i,c-=i-1; for(i=1;i<=c;i++) C[i]=C[k+i-1]; if(c<=0) c=1,C[1]=0; } void add() { int A[510],a,B[510],b,C[510],c,i; a=strlen(s1); for(i=0;iB[i])flag=1; if(A[i]b) flag=1; if(a=1;j--,i--) { if(C[i]>=q[j]) C[i]-=q[j]; else C[i]=C[i]+10-q[j],C[i-1]--; } for(;i>=1&&C[i]<0;i--) C[i]+=10,C[i-1]--; for(i=1;!C[i]&&i<=a;i++); k=i,c=a-i+1; for(i=1;i<=c;i++) C[i]=C[k+i-1]; C[0]=flag; } void sub() { int A[510],a,B[510],b,C[510],c,i; a=strlen(s1); for(i=0;i=1;i--) for(j=b;j>=1;j--) C[i+j]+=A[i]*B[j]; for(i=a+b;i>1;i--)C[i-1]+=C[i]/10,C[i]%=10; for(i=0;!C[i]&&i<=a+b;i++); k=i,c=a+b-i+1; for(i=1;i<=c;i++) C[i]=C[k+i-1]; if(c<=0) c=1,C[1]=0; } int C[510][1010]; void mul() { int A[510],a,B[510],b,ans[1010],x,c[510],temp,i,j,t=0,k; a=strlen(s1); for(i=0;i=0;i--) { for(j=1;j<=t-(temp-1-i+c[i]);j++) putchar(' '); for(j=1;j<=c[i];j++) printf("%d",C[i][j]);puts(""); } if(temp>1) { for(i=1;i<=t-max(k,x);i++) putchar(' '); for(i=1;i<=max(k,x);i++) putchar('-');puts(""); for(i=1;i<=t-x;i++) putchar(' '); for(i=1;i<=x;i++) printf("%d",ans[i]);puts(""); } } int main() { for(scanf("%d",&t);t--;) { scanf("%s",s); int i,len=strlen(s); for(i=0;i