Cod sursa(job #107978)
| Utilizator | Data | 20 noiembrie 2007 23:21:05 | |
|---|---|---|---|
| Problema | Economie | Scor | Ascuns |
| Compilator | cpp | Status | done |
| Runda | Marime | 0.56 kb |
#include <stdio.h>
int N, v[50005], res[50005], bst;
int main(void)
{
int i, j;
freopen("economie.in", "r", stdin);
freopen("economie.out", "w", stdout);
scanf("%d", &N);
for (i = 1; i <= N; i++)
{
scanf("%d", &j);
v[j] = 1;
}
res[0] = 1;
for (i = 1; i <= 50000; i++)
{
if (v[i] && !res[i])
{
for (j = i; j <= 50000; j++)
res[j] |= res[j-i];
bst++;
}
}
printf("%d\n", bst);
return 0;
}
