Mai intai trebuie sa te autentifici.
Cod sursa(job #2987293)
Utilizator | Data | 2 martie 2023 10:25:57 | |
---|---|---|---|
Problema | Economie | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.83 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int n,v[1005],maxim,nr,posibil[100005];
set <int> res;
int main()
{
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i];
if(v[i]>maxim)maxim=v[i];
}
sort(v+1,v+n+1);
posibil[0]=1;
bool ok=true;
for(int i=1;i<=n;i++){
ok=true;
for(int k=1;k<=n;k++)
if(posibil[v[k]]==0)
ok=false;
if(ok==true)
i=n;
for(int j=0;j<=maxim;j++)
{
if(posibil[j]){
posibil[j+v[i]]=1;
res.insert(v[i]);
}
}
}
set<int>::iterator it;
it=res.end();
it--;
res.erase(it);
fout<<res.size()<<'\n';
for(auto el:res)
fout<<el<<endl;
return 0;
}