Pagini recente » Cod sursa (job #141268) | Cod sursa (job #923360) | Cod sursa (job #487490) | Cod sursa (job #421528) | Cod sursa (job #550521)
Cod sursa(job #550521)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define maxN 1005
#define Vmax 50005
FILE*f=fopen("economie.in","r");
FILE*g=fopen("economie.out","w");
int i,N,V[maxN],j,ok,Sol[maxN],K;
char S[Vmax];
int main () {
fscanf(f,"%d",&N);
for ( i = 1 ; i <= N ; ++i ){
fscanf(f,"%d",&V[i]);
}
sort(V+1,V+N+1);
S[0] = 1;
for ( i = 1 ; i <= N && !ok ; ++i ){
if ( S[ V[i] ] ) continue;
S[V[i]] = 1;
Sol[++K] = V[i];
ok = 1;
for ( j = 0 ; j <= V[N] ; ++j ){
if ( S[ j ] && j + V[i] <= V[N] )
S[ j + V[i] ] = 1;
else if ( !S[j] ) ok = 0;
}
}
fprintf(g,"%d\n",K);
for ( i = 1 ; i <= K ; ++i ){
fprintf(g,"%d\n",Sol[i]);
}
fclose(f);
fclose(g);
return 0;
}