Cod sursa(job #462570)

Utilizator SpiderManSimoiu Robert SpiderMan Data 11 iunie 2010 17:58:12
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
# include <cstdio>

const char FIN[] = "economie.in", FOU[] = "economie.out";
const int MAX = 50000;

int V[MAX + 5], sol[MAX + 5] = { 1 };
int N, X;

int main ()
{
    freopen ( FIN, "r", stdin ) ;
    freopen ( FOU, "w", stdout ) ;

    scanf("%d", &N);

    for (int i = 1; i <= N; ++i)
        scanf("%d", &X), V[X] = 1, sol[i] = 1;


    X = 0;

    for (int i = 1; i <= MAX; ++i)
        if ( V[i] && sol[i] )
        {
            for (int j = i; j <= MAX; ++j)
                sol[ j ] &= sol[ j - i ];
            X++ , V[i]++;
        }



    printf("%d\n", X);

    for (int i = 1; i <= MAX; ++i)
        if ( V[i] > 1 )
            printf("%d\n", i);

    return 0;
}