Pagini recente » Cod sursa (job #2584221) | Cod sursa (job #301523) | Cod sursa (job #2890862) | Cod sursa (job #1007094) | Cod sursa (job #109808)
Cod sursa(job #109808)
#include <stdio.h>
#include <set>
using namespace std;
set <int> v, k;
set <int>::iterator it, it2;
int vaz[50001],
sol[1001];
int n, t, i, maxim;
int main()
{
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%d", &n);
for (i = 1; i <= n; ++ i)
{
scanf("%d", &t);
v.insert(t);
}
it = v.end();
-- it;
k.insert(0);
maxim = *it;
for (it = v.begin(); it!=v.end(); ++ it)
if (!vaz[*it])
{
sol[++sol[0]] = *it;
for (it2 = k.begin(); it2 != k.end(); ++ it2)
if (!vaz[*it2+*it] && *it2+*it<=maxim)
{
k.insert(*it2+*it);
vaz[*it2+*it] = 1;
}
}
printf("%d\n", sol[0]);
for (i = 1; i <= sol[0]; ++ i)
printf("%d\n", sol[i]);
return 0;
}