Pagini recente » Cod sursa (job #1588082) | Cod sursa (job #2247408) | Cod sursa (job #2570897) | Cod sursa (job #2682289) | Cod sursa (job #118034)
Cod sursa(job #118034)
#include <cstdio>
#include <vector>
#include <algorithm>
#define INF "economie.in"
#define OUF "economie.out"
#define NMAX 50002
#define pb(arg) push_back(arg)
using namespace std;
int main()
{
int i,j,n,x,maxv;
vector<int> v,sol;
char use[NMAX]={0};
FILE *in,*out,*test;
in=fopen(INF,"r");
out=fopen(OUF,"w");
maxv=0;
fscanf(in,"%d",&n);
for(i=0;i<n;++i)
{
fscanf(in,"%d",&x);
v.pb(x);
maxv=max(x,maxv);
}
sort(v.begin(),v.end());
use[0]=1;i=0;
while(i<n)
{
if(!use[v[i]])
{
x=v[i];
sol.pb(x);
j=0;
while(j+x<=maxv)
{
if(use[j]) use[j+x]=1;
++j;
}
}
++i;
}
fprintf(out,"%d\n",sol.size());
for(i=0;i<sol.size();++i) fprintf(out,"%d\n",sol[i]);
fclose(in);fclose(out);
return 0;
}