Cod sursa(job #1093394)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 27 ianuarie 2014 22:32:35
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int n,i,j,v[1050],x[50500],sol[1050],nmax,nr;
FILE *f,*g;
int main(){
    f=fopen("economie.in","r");
    g=fopen("economie.out","w");
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++){
        fscanf(f,"%d",&v[i]);
        if(v[i]>nmax)
            nmax=v[i];
    }
    sort(v+1,v+n+1);
    for(i=1;i<=n;i++){
        if(x[v[i]]==0) {
            sol[++nr]=v[i];
            x[v[i]]=1;
            for(j=1;j<=nmax-v[i];j++){
                if(x[j]==1)
                    x[j+v[i]]=1;
            }
        }
    }
    fprintf(g,"%d\n",nr);
    for(i=1;i<=nr;i++){
        fprintf(g,"%d\n",sol[i]);
    }





    fclose(f);
    fclose(g);
    return 0;
}