Pagini recente » Cod sursa (job #15386) | Cod sursa (job #2195730) | Cod sursa (job #1011142) | Cod sursa (job #1917714) | Cod sursa (job #396775)
Cod sursa(job #396775)
#include<algorithm>
using namespace std;
struct cel
{
int x,y;
} v[5000];
char l[50010];
int K;
int cmp(cel a,cel b)
{
return a.x<b.x;
}
int N;
void knap(int k)
{
for(int i=0;i<=v[N].x;++i)
{
if(l[i]==1)
{
if(i+k<=50000)
l[i+k]=1;
}
}
}
int main()
{
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%d",&N);
for(int i=1;i<=N;++i)
{
scanf("%d",&v[i].x);
}
sort(v+1,v+N+1,cmp);
l[0]=1;
for(int i=1;i<=N;++i)
{
if(l[v[i].x]==0)
{
v[i].y=1;
++K;
knap(v[i].x);
}
}
printf("%d\n",K);
for(int i=1;i<=N;++i)
{
if(v[i].y==1)
printf("%d ",v[i].x);
}
return 0;
}