Cod sursa(job #1314116)

Utilizator sddddgjdZloteanu Anastasia sddddgjd Data 11 ianuarie 2015 15:57:20
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
#include<algorithm>
#define N 1000
#define MAX 50000
int v[N],sol[N];
char pos[MAX];
int main()
{
    FILE *fin,*fout;
    fin=fopen("economie.in","r");
    fout=fopen("economie.out","w");
    int n;
    fscanf(fin,"%d",&n);
    int i;
    for(i=0;i<n;i++)
        fscanf(fin,"%d",&v[i]);
    std::sort(v,v+n);
    pos[0]=1;
    int soln=0;
    for(i=0;i<n;i++)
    {
        if(!pos[v[i]])
        {
            sol[soln]=v[i];
            soln++;
            int j;
            for(j=0;j<=v[n-1]-v[i];j++)
            {
                if(pos[j])
                    pos[v[i]+j]=1;
            }
        }
    }
    fprintf(fout,"%d\n",soln);
    for(i=0;i<soln;i++)
        fprintf(fout,"%d\n",sol[i]);
    return 0;
}