Pagini recente » Cod sursa (job #2224541) | Cod sursa (job #2263236) | Cod sursa (job #2470257) | Cod sursa (job #2535168) | Cod sursa (job #2566494)
#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];
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;
}