Pagini recente » Cod sursa (job #2136209) | Cod sursa (job #1810884) | Cod sursa (job #1107793) | Cod sursa (job #2596478) | Cod sursa (job #2566477)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int cnt,v[1005],frecv[50005],maxim,n,rasp,aux[1005];
bool apar[50005];
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>v[i];
frecv[v[i]]++;
maxim=max(maxim,v[i]);
}
sort(v+1,v+n+1);
apar[0]=1;
while(n>rasp)
{
while(frecv[v[cnt]]==0)
cnt++;
rasp++;
aux[rasp]=v[cnt];
apar[v[cnt]]=1;
frecv[v[cnt]]--;
for(int i=0;i<=maxim-v[cnt];i++)
{
if(apar[i]==1)
{
if(frecv[i+v[cnt]]>0&&apar[i+v[cnt]]==0)
{
n-=frecv[i+v[cnt]];
frecv[i+v[cnt]]=0;
}
apar[i+v[cnt]]=1;
}
}
}
fout<<rasp<<endl;
for(int i=1;i<=rasp;i++)
fout<<aux[i]<<endl;
}