Cod sursa(job #287553)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 24 martie 2009 22:41:32
Problema Economie Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 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];

int cmp(nr a,nr b){
    return a.x<b.x;}

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

    scanf("%d",&n);
    for(i=1; i<=n; ++i)
        scanf("%d",&a[i].x);
    sort(a+1,a+n+1,cmp);
    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;}