Pagini recente » Cod sursa (job #2910552) | Cod sursa (job #499199) | Cod sursa (job #1401923) | Cod sursa (job #603681) | Cod sursa (job #567169)
Cod sursa(job #567169)
Utilizator |
roots1 roots |
Data |
29 martie 2011 19:45:50 |
Problema |
Economie |
Scor |
100 |
Compilator |
cpp |
Status |
done |
Runda |
101 |
Marime |
0.63 kb |
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define Dim1 1001
#define Dim2 50001
using namespace std;
char ok[Dim1],p[Dim2];
int v[Dim1];
int main()
{
int i,j,nr,N;
freopen("economie.in","r",stdin);
scanf("%d",&N);
for(i=0;i<N;i++) scanf("%d",&v[i]);
sort(v,v+N);
memset(ok,0,sizeof(ok));
memset(p,0,sizeof(p));
p[0]=1;
nr=0;
for(i=0;i<N;i++)
if(!p[v[i]])
{
nr++;
ok[i]=1;
for(j=0;j<=Dim2-v[i]-1;j++)
if(p[j]) p[j+v[i]]=1;
}
freopen("economie.out","w",stdout);
printf("%d\n",nr);
for(i=0;i<N;i++)
if(ok[i]) printf("%d\n",v[i]);
return 0;
}