Pagini recente » Clasament pre_oji_2011 | Cod sursa (job #3246415) | Cod sursa (job #2222390) | Cod sursa (job #1344373) | Cod sursa (job #1704941)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int a[1001],ap[50001];
bitset<50001>es;
int n,i,mx,fi,ok,j,j2;
int main()
{
fin>>n;
for(i=1;i<=n;i++)fin>>a[i],ap[a[i]]++,mx=max(mx,a[i]);
for(n=0,i=1;i<=mx;i++)
while(ap[i]--)a[++n]=i;
memset(ap,0,sizeof(ap));
for(i=1;i<=n;i++)ap[a[i]]=1;
fi=n;
for(i=1;i<=n;i++)
for(j=1;j<=mx;j++)
{
if(j==a[i])
{
for(j2=a[i];j2<=mx;j2+=a[i])
if(es[j2]==0)
{
es[j2]=1;
if(ap[j2])fi--;
if(fi==0)
{
fout<<i<<"\n";
for(j=1;j<=i;j++)fout<<a[j]<<"\n";
return 0;
}
}
continue;
}
if(es[j]==1 && j%a[i]>0)
for(j2=j;j2<=mx;j2+=a[i])
if(es[j2]==0)
{
es[j2]=1;
if(ap[j2])fi--;
if(fi==0)
{
fout<<i<<"\n";
for(j=1;j<=i;j++)fout<<a[j]<<"\n";
return 0;
}
}
}
return 0;
}