Cod sursa(job #466590)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 27 iunie 2010 11:24:39
Problema Prod Scor 10
Compilator c Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 1 Marime 0.85 kb
#include <stdio.h>
#define NMAX 22
#define ll long long
int A[NMAX],r,st1[NMAX],st2[NMAX],t1,t2;
ll nr1,nr2,rez;
void read()
{
    int i,j,x;
    for (i=1; i<=9; i++)
    {
        scanf("%d",&x);
        for (j=1; j<=x; j++)
            A[++r]=i;
    }
}
void solve()
{
    int i,j;
    for (i=1; i<(1<<r); i++)
    {
        t1=t2=0;
        nr1=nr2=0;
        for (j=1; j<=r; j++)
            if (i & 1<<(j-1))
                st1[++t1]=j;
            else
                st2[++t2]=j;
        for (j=t1; j>=1; j--)
            nr1=nr1*10+A[st1[j]];
       for (j=t2; j>=1; j--)
            nr2=nr2*10+A[st2[j]];
       if (nr1*nr2>rez)
            rez=nr1*nr2;
    }
}
int main()
{
    freopen("prod.in","r",stdin);
    freopen("prod.out","w",stdout);
    read();
    solve();
    printf("%lld\n",rez);
    return 0;
}