Cod sursa(job #2131514)

Utilizator alexilasiAlex Ilasi alexilasi Data 14 februarie 2018 19:12:20
Problema Prod Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("prod.in");
ofstream fout("prod.out");

int i,j,t;

int v[10],a[1001],b[1001],c[3001];

bool cmp(int a[],int b[])
// returns true if a >b, false otherwise
{
    if(a[0]!=b[0])return a[0]>b[0];
    for(int i=1;i<=a[0];i++)
        if(a[i]!=b[i])
            return a[i]>b[i];
    return false;
}

int main()
{
    for(i=1;i<=9;i++)
        fin>>v[i];
    for(i=9;i>0;i--)
        while(v[i])
    {
        if(cmp(a,b))
            b[++b[0]]=i;
        else a[++a[0]]=i;
        v[i]--;
    }

    for(i=a[0];i;i--)
        for(j=b[0];j;j--)
        {
            c[a[0]+b[0]-i-j+1]+=a[i]*b[j];
        }
    c[0]=a[0]+b[0]-1;
    i=1;
    while(i<=c[0]||t!=0)
    {
        c[i]+=t;
        t=c[i]/10;
        c[i]%=10;
        i++;
    }
    c[0]=max(c[0],i-1);
    for(i=c[0];i;i--)
        fout<<c[i];
    return 0;
}