Pagini recente » Autentificare | Cod sursa (job #248849) | Cod sursa (job #2851444) | Profil BlocK240 | Cod sursa (job #111514)
Cod sursa(job #111514)
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
#define pb push_back
#define sz size()
const int maxV = 50001;
vector<int> sir;
vector<int> sol;
bool potA[ maxV ];
int n;
int main()
{
int i,j,aux;
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%d\n", &n );
for ( i = 1; i <= n; i++ ) {
scanf("%d\n", &aux );
sir.pb( aux );
}
sort( sir.begin(), sir.end() );
potA[ 0 ] = 1;
for ( i = 0; i < sir.sz; i++ ) {
if ( !potA[ sir[ i ] ] ) {
sol.pb( sir[ i ] );
for ( j = 0; j < maxV; j++ )
if ( potA[ j ] && j + sir[i] < maxV )
potA[ j + sir[i] ] = 1;
}
}
printf("%d\n", sol.sz);
for( i = 0; i < sol.sz; i++ )
printf("%d\n", sol[i] );
fclose(stdin);
fclose(stdout);
return 0;
}