Pagini recente » Cod sursa (job #2225787) | Cod sursa (job #1492656) | Cod sursa (job #3175323) | Cod sursa (job #1320352) | Cod sursa (job #128658)
Cod sursa(job #128658)
#include<iostream.h>
#include<stdio.h>
short v[50001];
int main()
{ int n, m[1000], i, l, j, vm[1000],k,primul,sch,aux;
freopen("economie.in", "rt", stdin);
freopen("economie.out", "wt", stdout);
cin>>n;
for(i=0;i<n;i++)
cin>>m[i];
l=n-1;
do{sch=0;
for(i=0;i<l;i++)
if(m[i]>m[i+1]) {aux=m[i];
m[i]=m[i+1];
m[i+1]=aux;
sch=1;
}
l--;
}while(sch);
if( m[0]==1) cout<<1<<endl<<1;
else{
for(i=m[0];i<=m[n-1];i+=m[0])
v[i]=1;
vm[0]=m[0];
for(i=j=1;i<n;i++)
if(v[m[i]]==0) { v[m[i]]=1;
vm[j++]=m[i];
primul=1;
while(v[primul]==0) primul++;
for(k=primul;k<=m[n-1]-m[i];k++)
if(v[k]) v[k+m[i]]=1;
}
cout<<j<<endl;
for(i=0;i<j;i++)
cout<<vm[i]<<endl;
}
return 0;
}