Pagini recente » Borderou de evaluare (job #113986) | Borderou de evaluare (job #2517216) | Borderou de evaluare (job #3141572) | Borderou de evaluare (job #960654) | Cod sursa (job #775618)
Cod sursa(job #775618)
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
bool v[50007];
long n,nr,c[50006],a[1007];
void ciurdif()
{
long i,j;
v[a[1]]=0;
for (i=0;i<=50000;i+=a[1])
if (a[1]!=i)
v[i]=1;
for (i=2;i<=n;i++)
if (v[a[i]]==0)
{
v[a[i]*2]=1;
for (j=1;j<=50000;j++)
if (v[j]==1&&j+a[i]<=50000)
v[j+a[i]]=1;
}
}
int main()
{
long i;
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%ld",&n);
for (i=1;i<=n;i++)
scanf("%ld",&a[i]);
sort (a+1,a+n+1);
ciurdif();
for (i=1;i<=n;i++)
if (v[a[i]]==0)
nr++,c[nr]=a[i];
printf("%ld\n",nr);
for (i=1;i<=nr;i++)
printf("%ld\n",c[i]);
return 0;
}