Pagini recente » Autentificare | Cod sursa (job #1011088) | Cod sursa (job #1521705) | Cod sursa (job #711710) | Cod sursa (job #1402411)
#include <cstdio>
#include <vector>
#include <algorithm>
#include <bitset>
#define filein "economie.in"
#define fileout "economie.out"
#define VALMAX 50002
using namespace std;
vector <int> sol;
bitset <VALMAX> Done;
int v[1001];
int N;
int maxx;
void ReadData();
void PrintData();
int main()
{
ReadData();
sort(v+1,v+N+1);
register int i,j;
for (i=1; i<=N; i++)
{
if (!Done[v[i]])
{
sol.push_back(v[i]);
Done[v[i]]=1;
for (j=1; j<=maxx-v[i]; j++)
if (Done[j]) Done[j+v[i]]=1;
}
}
PrintData();
return 0;
}
void ReadData()
{
FILE *in;
in=fopen(filein,"r");
fscanf(in,"%d",&N);
register int i;
for (i=1; i<=N; i++)
{
fscanf(in,"%d",v+i);
if (maxx<v[i]) maxx=v[i];
}
fclose(in);
}
void PrintData()
{
FILE *out;
out=fopen(fileout,"w");
vector <int> :: iterator it;
fprintf(out,"%d\n",sol.size());
for (it=sol.begin(); it<sol.end(); it++)
fprintf(out,"%d\n",(*it));
fclose(out);
}