Cod sursa(job #2214174)

Utilizator Hidden.bdBurlacu Doru Hidden.bd Data 18 iunie 2018 14:36:32
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iomanip>
#include <vector>
 
const long double PI = acos(-1);
 
using namespace std;
 
ifstream fin("economie.in");
ofstream fout("economie.out");

//#define fin cin
//#define fout cout

bool mc[50002];
vector<int> v;
int b[1002];

int main(){
    
    int n;

    fin >> n;

    for( int i = 1 ; i <= n ; ++i ) fin >> b[i];

    sort(b + 1, b + n + 1);

    mc[0] = 1;
    for( int i = 1 ; i <= n ; ++i ){
        if( !mc[b[i]] ){
            v.push_back(b[i]);

            for( int j = 0 ; j <= 50000 - b[i] ; ++j ){
                if( mc[j] ){
                    mc[b[i] + j] = 1;
                }
            }
        }
    }
    
    fout << v.size() << "\n";
    for( int i = 0 ; i < v.size() ; ++i ) fout << v[i] << " ";
    
    return 0;
}