Pagini recente » Cod sursa (job #69587) | Cod sursa (job #2461530) | Cod sursa (job #529214) | Cod sursa (job #2516450) | Cod sursa (job #466649)
Cod sursa(job #466649)
#include<stdio.h>
#include<iostream.h>
int a[10000],b[10000],aux[10000],i,j,m,n,x,nr,y;
void mul(int a[10000], int b[10000])
{
int i, j, t, c[10000];
memset(c, 0, sizeof(c));
for (i = 1; i <= a[0]; i++)
{
for (t=0, j=1; j <= b[0] || t; j++, t/=10)
c[i+j-1]=(t+=c[i+j-1]+a[i]*b[j])%10;
if (i + j - 2 > c[0]) c[0] = i + j - 2;
}
memcpy(a, c, sizeof(c));
}
int main()
{
freopen("prod.in","r",stdin);
freopen("prod.out","w",stdout);
for(i=1;i<=9;i++)
{
scanf("%d",&x);
for(j=nr+1;j<=nr+x;j++)
aux[j]=i;
nr=nr+x;
}
n=m=1;
a[1]=aux[nr];
b[1]=aux[nr-1];
if(nr%2) x=2;
else
x=1;
for(i=nr-2;i>=x;i-=2)
{
n++;
m++;
a[n]=aux[i-1];
b[m]=aux[i];
}
if(x==2)
{
m++;
b[m]=aux[1];
}
a[0]=n;
b[0]=m;
for(i=1;i<=n/2;i++)
{
y=a[i];
a[i]=a[n+1-i];
a[n+1-i]=y;
}
for(i=1;i<=m/2;i++)
{
y=b[i];
b[i]=b[m+1-i];
b[m+1-i]=y;
}
mul(a,b);
for(i=a[0];i>=1;i--)
printf("%d",a[i]);
return 0;
}