Pagini recente » Cod sursa (job #413380) | Cod sursa (job #1940351) | Cod sursa (job #2390849) | Cod sursa (job #2026954) | Cod sursa (job #533965)
Cod sursa(job #533965)
#include <stdio.h>
int a[501],b[501],c[250001],v[10],t,i,j,k,s;
int main()
{
freopen("prod.in","r",stdin);
freopen("prod.out","w",stdout);
for (i=1;i<=9;++i)
{
scanf("%d",&v[i]);
s+=v[i];
}
if (s%2)
{
i=s;
while (i>s/2+1)
{
j=9;
while (!v[j]%2) --j;
a[i-s/2-1]=j;--v[j];--i;
}
a[0]=s/2;
b[0]=s/2+1;i=s/2+1;
while (i>0)
{
j=9;
while (!v[j]) --j;
b[i]=j;--v[j];--i;
}
}
else
{
j=9;i=1;a[0]=s/2;b[0]=s/2;
while (!(v[j]%2))
{
k=i;
for (i=i;i<k+v[j]/2;++i)
{
a[s/2-i+1]=j;
b[s/2-i+1]=j;
}
v[j]=0;--j;
}
k=i;
for (i=i;i<k+v[j]/2;++i)
{
a[s/2-i+1]=j;
b[s/2-i+1]=j;
}
a[s/2-i+1]=j;v[j]=0;
--j;k=i+1;
for (i=k-1;i<=s/2;++i)
{
while (!v[j]) --j;
b[s/2-i+1]=j;--v[j];
}
for (i=k;i<=s/2;++i)
{
while (!v[j]) --j;
a[s/2-i+1]=j;--v[j];
}
}
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;
}
for (i=c[0];i>0;--i) printf("%d",c[i]);
return 0;
}