Cod sursa(job #287550)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 24 martie 2009 22:38:48
Problema Economie Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<algorithm>
using namespace std;

#define DIM 100001
#define MAX 50001

int n,f[DIM];

struct nr{
    int x,uz;};
nr a[DIM/100];

void solve(){
    int i,j,k;

    scanf("%d",&n);
    for(i=1; i<=n; ++i)
        scanf("%d",&a[i].x);
    for(i=f[0]=1; i<=n; ++i)
        for(j=0; j<MAX; ++j)
            if(f[j])
                ++f[j+a[i].x];
    for(i=1,k=0; i<=n; ++i)
        if(f[a[i].x]>1){
            a[i].uz=1;
            ++k;}
    printf("%d\n",n-k);
    for(i=1; i<=n; ++i)
        if(!a[i].uz)
            printf("%d\n",a[i].x);}
int main(){
    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);
    solve();
    return 0;}