Cod sursa(job #2602594)
| Utilizator | Data | 17 aprilie 2020 13:35:32 | |
|---|---|---|---|
| Problema | Economie | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("economie.in");
ofstream g("economie.out");
int n,v[1001],raspuns;
bitset<50001>ap;
bitset<1001>rasp;
int main()
{
f >> n;
for(int i = 1; i <= n; ++i)
f >> v[i];
sort(v + 1,v + n + 1);
for(int i = 1; i <= n; ++i)
if(ap[v[i]] == 0)
{
ap[v[i]] = 1;
raspuns++;
rasp[i] = 1;
for(int j = 1; j <= 50000 - v[i]; ++j)
if(ap[j] == 1)
ap[j + v[i]] = 1;
}
g << raspuns << '\n';
for(int i = 1; i <= n; ++i)
if(rasp[i])
g << v[i] << '\n';
return 0;
}
