Cod sursa(job #2529681)

Utilizator AlexNeaguAlexandru AlexNeagu Data 23 ianuarie 2020 20:06:08
Problema Economie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("economie.in");
ofstream out("economie.out");
vector < int > cur_subset;
bitset < 50005 > c;
int main() {
  int n;
  in >> n;
  int v[n + 5];
  for (int i = 1; i <= n; i++) {
    in >> v[i];
  }
  sort(v + 1, v + 1 + n);
  for (int i = 1; i <= n; i++) {
    if (!c[v[i]]) {
      c[v[i]] = 1;
      cur_subset.push_back(v[i]);
      for (int j = 1; j <= 50000 - v[i]; j++) {
        if (c[j]) {
          c[j + v[i]] = 1;
        }
      }
    }
  }
  out << cur_subset.size() << "\n";
  for (auto it : cur_subset) {
    out << it << "\n";
  }
  return 0;
}