Mai intai trebuie sa te autentifici.
Cod sursa(job #2566494)
Utilizator | Data | 2 martie 2020 21:41:42 | |
---|---|---|---|
Problema | Economie | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.93 kb |
#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;
}