Pagini recente » Cod sursa (job #653744) | Istoria paginii utilizator/stoica_tudor | Cod sursa (job #136449) | Cod sursa (job #1658840) | Cod sursa (job #110897)
Cod sursa(job #110897)
#include<stdio.h>
int n,cnt=0; long sol2[1001],i,j,max; bool v[50001],sol[50001];
/*long divizare(int a,int x,long &m)
{long aux; m=v[a];
while(a<x)
{while(v[a]<m) a++;
while(v[x]>m) x--;
if(a<x) {aux=v[a]; v[a]=v[x]; v[x]=aux;} }
m=a;
}
long Q_SORT(int a,int x)
{long m;
if(a<x) {divizare(a,x,m);
Q_SORT(a,m-1);
Q_SORT(m+1,x);}
}*/
int update()
{long var=v[i];
for(j=var+1;j<=max;j++)
if(sol[j-var]==1 || j%var==0) sol[j]=1;}
int algoritm()
{for(i=1;i<=max;i++)
if(v[i]==1)
if(sol[v[i]]==0) {cnt++; sol2[cnt]=v[i]; sol[v[i]]=1;
update();}
}
int main()
{freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
long var;
scanf("%d",&n);
for(i=1;i<=n;i++) {scanf("%ld",&var); if(var>max) max=var;
v[var]=1;}
algoritm();
printf("%d\n",cnt);
for(i=1;i<=cnt;i++) printf("%ld\n",sol2[i]);
printf("\n"); }