Cod sursa(job #533326)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 13 februarie 2011 18:53:10
Problema Prod Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <stdio.h>

int a[501],b[501],c[250001],v[10],t,i,j,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]) --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
    {
        for (i=s;i>0;i-=2)
        {
            j=9;
            while (!v[j]) --j;
            a[i]=j;--v[j];
            j=9;
            while (!v[j]) --j;
            b[i]=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;
}