Pagini recente » Cod sursa (job #3260095) | Cod sursa (job #1191587) | Cod sursa (job #2210206) | Cod sursa (job #2773879) | Cod sursa (job #109300)
Cod sursa(job #109300)
#include <cstdio>
#include <algorithm>
using namespace std;
long n,v[1010],mx,i,j,t[50100],p[50100],ok,x[50100],nr;
int main(){
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%ld",&n);
for (i=1;i<=n;i++)
scanf("%ld",&v[i]);
sort(v+1,v+n+1);
mx=v[n];
t[0]=1;
for (i=1;i<=n;i++)
{
for (j=0;j<=mx-v[i];j++)
if (t[j]==1)
{
if (t[j+v[i]]==0)
{
p[j+v[i]]=j;
t[j+v[i]]=1;
}
}
ok=1;
for (j=i+1;j<=n;j++)
if (t[v[j]]==0)
ok=0;
if (ok)
i=n+1;
}
for (i=1;i<=n;i++)
{
j=v[i];
while (j>0)
{
x[j-p[j]]=1;
j=p[j];
}
}
for (i=1;i<=mx;i++)
if (x[i]==1)
nr++;
printf("%ld\n",nr);
for (i=1;i<=mx;i++)
if (x[i]==1)
printf("%ld\n",i);
return 0;
}