Pagini recente » Cod sursa (job #2943143) | Cod sursa (job #3172996) | Cod sursa (job #1978119) | Cod sursa (job #999478) | Cod sursa (job #239859)
Cod sursa(job #239859)
#include <cstdio>
#include <cstring>
int main()
{
const int NMAX = 1005, VMAX = 50005;
int N, i, aux, v[NMAX], k = 0, x, j, vm, r = 0, rasp[NMAX];
char pos[VMAX] = {};
freopen("economie.in", "r", stdin);
freopen("economie.out", "w", stdout);
scanf("%d\n", &N);
for (i = 0; i != N; ++i) {
scanf("%d\n", &aux);
pos[aux >> 3] |= 1 << (aux & 7);
}
for (i = 1; i <= VMAX; ++i) if (pos[i >> 3] & (1 << (i & 7)) ) v[k++] = i;
memset(pos, 0, VMAX);
vm = v[k - 1];
for (i = 1; i <= vm; ++i) {
for (j = 0; v[j] < i; ++j) {
x = i - v[j];
if (pos[x >> 3] & (1 << (x & 7)) ) {
pos[i >> 3] |= 1 << (i & 7);
break;
}
}
if ( !(pos[i >> 3] & (1 << (i & 7))) && v[j] == i ) {
pos[i >> 3] |= 1 << (i & 7);
rasp[r++] = i;
}
}
printf("%d\n", r);
for (i = 0; i != r; ++i)
printf("%d\n", rasp[i]);
return 0;
}