Cod sursa(job #1258255)

Utilizator rzvrzvNicolescu Razvan rzvrzv Data 8 noiembrie 2014 17:29:07
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<cstdio>
#include<algorithm>

using namespace std;

int a[5002],vmax,i,n,nr,j,s[5002];
bool d[100000];

int main()
{
    freopen("economie.in","r",stdin);
    freopen("economie.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
        vmax=max(vmax,a[i]);
    }
    sort(a+1,a+n+1);
    d[0]=true;
    for(i=1;i<=n;i++)
    {
        if(!d[a[i]])
        {
            nr++;
            s[nr]=a[i];
            for(j=a[i];j<=vmax;j++)
            {
                if(d[j-a[i]])
                {
                    d[j]=true;
                }
            }
        }
    }
    printf("%d\n",nr);
    for(i=1;i<=nr;i++)
    {
        printf("%d\n",s[i]);
    }
}