Pagini recente » Cod sursa (job #2608737) | Cod sursa (job #653878) | Cod sursa (job #2113684) | Cod sursa (job #3227456) | Cod sursa (job #605951)
Cod sursa(job #605951)
#include<fstream>
#include<algorithm>
#define NMAX 50010
#define MMAX
using namespace std;
bool vz[NMAX];
int a[NMAX], b[NMAX], m=0, n;
ifstream f("economie.in");
ofstream g("economie.out");
void Citeste()
{
int i;
f>>n;
for (i=1; i<=n; ++i) f>>a[i];
}
void Rezolva()
{
int i, j;
m=1; b[1]=a[1];
vz[0]=vz[a[1]]=1;
for (j=0; j<=50000; j+=a[1]) vz[j]=1;
for (i=2; i<=n; ++i)
if (!vz[a[i]])
{
b[++m]=a[i];
for (j=0; j<=50000; j+=a[i]) vz[j]=1;
for (j=0; j<50000; ++j)
if (vz[j])
if (j+a[i]<=50000) vz[j+a[i]]=1;
}
g<<m<<"\n";
for (i=1; i<=m; ++i) g<<b[i]<<"\n";
}
int main()
{
Citeste();
sort(a+1, a+n+1);
Rezolva();
f.close();
g.close();
return 0;
}