Cod sursa(job #2106336)

Utilizator cristina-criCristina cristina-cri Data 15 ianuarie 2018 16:59:54
Problema Principiul includerii si excluderii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <cstdio>
#include <algorithm>

#define NMAX 1005

#define CIFMAX 50000

using namespace std;



int n, a[NMAX], c[CIFMAX+5], sol[NMAX];

void ciur(int x)
{
    c[x]=1;
    for(int i = 1; i <= CIFMAX; i++)
    {
        if(c[i] == 1 && i+x<=CIFMAX)
        {
            c[i+x] = 1;
        }
    }
}

int main()
{

    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);

    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
    }
    sort(a+1, a+1+n);
    for(int i = 1; i <= n; i++)
    {
        if(c[a[i]] != 1)
        {
            ciur(a[i]);
            sol[++sol[0]] = a[i];
        }
    }
    printf("%d\n",sol[0]);
    for(int i=1; i<=sol[0]; i++)
        printf("%d\n",sol[i]);
    return 0;
}