Pagini recente » Cod sursa (job #3221062) | Cod sursa (job #300264)
Cod sursa(job #300264)
#include <stdio.h>
int n,v[1001],t[50001],i,j,min;
void quick(int st, int dr)
{
int i=st,j=dr,p=v[(i+j)/2],aux;
if (i>j) return;
while (i<=j)
{
while (v[i]<p) i++;
while (v[j]>p) j--;
if (i<=j)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
i++;
j--;
}
}
if (st<j) quick(st,j);
if (i<dr) quick(i,dr);
}
int main()
{
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%d", &n);
for (i=1;i<=n;i++)
scanf("%d", &v[i]);
quick(1,n);
min=0;
for (i=1;i<=n;i++)
{
if (t[v[i]]==0)
{ t[v[i]]=2; ++min; }
for (j=v[i]+1;j<=v[n];j++)
if (t[j-v[i]]>0)
t[j]=1;
}
printf("%d\n", min);
for (i=1;i<=v[n];i++)
if (t[i]==2)
printf("%d\n", i);
return 0;
}