Cod sursa(job #1936214)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 22 martie 2017 22:12:58
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>
#include <algorithm>

using namespace std;
int v[1001],f[50001],sol[1001];
int main()
{
    FILE *fin=fopen ("economie.in","r");
    FILE *fout=fopen ("economie.out","w");
    int n,i,obt,j;
    fscanf (fin,"%d",&n);
    for (i=1;i<=n;i++)
        fscanf (fin,"%d",&v[i]);
    sort (v+1,v+n+1);
    f[0]=1;
    obt=0;
    for (i=1;i<=n && obt<n;i++){
        if (f[v[i]]==0)
            sol[++sol[0]]=v[i];
        else continue;
        for (j=0;j+v[i]<=v[n];j++){
            if (f[j]==1 && f[j+v[i]]==0)
                f[j+v[i]]=1;
        }
    }
    fprintf (fout,"%d\n",sol[0]);
    for (i=1;i<=sol[0];i++)
        fprintf (fout,"%d\n",sol[i]);
    return 0;
}