Pagini recente » Cod sursa (job #1625702) | Cod sursa (job #1147294) | Cod sursa (job #2053012) | Cod sursa (job #2901938) | Cod sursa (job #1041614)
#include <fstream>
#include <vector>
#include <bitset>
#include <algorithm>
#define in "economie.in"
#define out "economie.out"
#define Max_Size 1009
#define Max_Val 50009
std :: ifstream f(in);
std :: ofstream g(out);
int N, Maxim;
std :: vector < int > V, Sol;
std :: bitset < Max_Val > B;
inline void Read_Data()
{
f >> N;
V.resize(N);
for(int i = 0; i < N; ++i)
{
f >> V[i];
Maxim = std :: max(Maxim, V[i]);
}
}
inline void Solve()
{
std :: sort(V.begin(), V.end());
for(int i = 0; i < N; ++i)
if( !B[ V[i] ] )
{
B[ V[i] ] = 1;
Sol.push_back(V[i]);
for(int j = 0; j + V[i] <= Maxim; ++j)
if( !B[j] ) B[ j + V[i] ] = 1;
}
}
inline void Write_Data()
{
g << Sol.size() << '\n';
for(int i = 0; i < Sol.size(); ++i) g << Sol[i] << '\n';
}
int main()
{
Read_Data();
Solve();
Write_Data();
g.close();
return 0;
}