Pagini recente » Cod sursa (job #2945636) | Cod sursa (job #2575141) | Cod sursa (job #1953919) | Cod sursa (job #158282) | Cod sursa (job #2557340)
#include <fstream>
#include <vector>
#include <algorithm>
#define nmax 50002
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int n,val;
int v[nmax];
vector <int> rasp;
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
sort(v+1,v+n+1);
if(v[1]==1)
{
fout<<"1\n1";
return 0;
}
for(int i=1;i<=n;i++)
{
if(i==1)
rasp.push_back(v[i]);
else
{
bool ok=false;
int sum=0;
for(int j=0;j<rasp.size() && !ok;j++)
{
int r=v[i]%rasp[j];
sum+=rasp[j];
if(v[i]==sum)
ok=true;
if(r==0)
ok=true;
int st=0,dr=rasp.size();
dr--;
while(st<=dr && !ok)
{
int mij=(st+dr)/2;
if(rasp[mij]==r)
ok=true;
else if(rasp[mij]<r)
st=mij+1;
else
dr=mij-1;
}
}
if(ok==false)
rasp.push_back(v[i]);
}
}
fout<<rasp.size()<<"\n";
for(int i=0;i<rasp.size();i++)
fout<<rasp[i]<<"\n";
return 0;
}