Pagini recente » Borderou de evaluare (job #2834763) | Borderou de evaluare (job #1430711) | Borderou de evaluare (job #1520246) | Cod sursa (job #3231775) | Cod sursa (job #2501244)
#include <fstream>
#include <iostream>
#include <algorithm>
#include <vector>
#define NMAX 1000
#define VMAX 50000
using namespace std;
ifstream f("economie.in");
ofstream g("economie.out");
int n, v[NMAX+10], dp[VMAX+10], nr;
vector <int> ans;
int main()
{
f >> n;
for(int i=1; i<=n; i++) f >> v[i];
sort(v+1, v+n+1);
dp[0] = 1;
for(int i=1; i<=n; i++)
if(!dp[v[i]])
{ ans.push_back(v[i]);
for(int j=0; j<=VMAX-v[i]; j++)
if(dp[j])
dp[j+v[i]] = 1;
}
g << ans.size() << '\n';
for(int i=0; i<ans.size(); i++) g << ans[i] << '\n';
return 0;
}