Cod sursa(job #360086)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 29 octombrie 2009 16:48:40
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
long n,i,a[1050],b[1050],f[50050],m,j;
int main()
{
 freopen("economie.in","r",stdin);
 freopen("economie.out","w",stdout);
 scanf("%ld",&n);
 for(i=1;i<=n;++i)
    {scanf("%ld",&a[i]);
     if(m<a[i])m=a[i];}
 sort(a+1,a+n+1);
 f[0]=1;
 for(i=1;i<=n;++i)
    if(f[i]==0)
      {b[++b[0]]=a[i];
       for(j=0;j<=m;++j)
          if(f[j]&&j+a[i]<=m)f[j+a[i]]=1;}
 printf("%ld\n",b[0]);
 for(i=1;i<=b[0];++i)
    printf("%ld\n",b[i]);
 return 0;
}