Pagini recente » Cod sursa (job #1334583) | Cod sursa (job #301259) | Cod sursa (job #1211165) | Cod sursa (job #2904198) | Cod sursa (job #283478)
Cod sursa(job #283478)
#include <fstream.h>
int v[1009],s[50009],n,sol[1009],nr,max,k;
void cit()
{
int i;
ifstream fin("economie.in");
fin>>n;
for(i=1;i<=n;i++)
{
fin>>v[i];
if(v[i]>max)
max=v[i];
}
fin.close();
}
void solv()
{
int i,j,sw;
nr=1;
sol[1]=v[1];
s[v[1]]=1;
for(i=2;i<=n;i++)
{
sw=0;
for(j=max;j>=1;j--)
if(s[j])
{
if(v[i]%j==0)
sw=1;
if(j+v[i]<=max)
s[j+v[i]]=1;
}
if(!sw)
{
nr++;
sol[nr]=v[i];
}
s[v[i]]=1;
}
}
void poz(int li,int ls)
{
int i=li,j=ls,ii=0,jj=-1,c;
while(i<j)
{
if(v[i]>v[j])
{
c=v[i]; v[i]=v[j]; v[j]=c;
c=ii;
ii=-jj;
jj=-c;
}
i+=ii;
j+=jj;
}
k=i;
}
void quick(int li,int ls)
{
if(li<ls)
{
poz(li,ls);
quick(li,k-1);
quick(k+1,ls);
}
}
void afis()
{
int i;
ofstream fout("economie.out");
fout<<nr<<'\n';
for(i=1;i<=nr;i++)
fout<<sol[i]<<'\n';
fout.close();
}
int main()
{
cit();
quick(1,n);
solv();
afis();
return 0;
}