Mai intai trebuie sa te autentifici.
Cod sursa(job #3338472)
| Utilizator | Data | 3 februarie 2026 16:52:26 | |
|---|---|---|---|
| Problema | Economie | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.02 kb |
#include <fstream>
#include <climits>
#include <algorithm>
#include <vector>
#include <cstring>
#define DIM 50001
using namespace std;
ifstream cin("economie.in");
ofstream cout("economie.out");
// declaring
int d[DIM],n,v[1005],nr,sol[DIM],k=0;
int main()
{
////reading
cin >> n;
for (int i=0;i<n;i++){
cin >> v[i];
}
nr=n;
////sort after value
sort(v,v+n);
d[0]=1;
////algorithm
for (int i=0;i<n;i++){
if (d[v[i]]==0){
sol[k]=v[i];///we add it if we cant make it from the smaller nrs
k++;
for (int j=0;j<=v[n-1];j++){
if (v[i]+j<=v[n-1]&&d[j]!=0){
d[v[i]+j]=1;
}
}
}}
////outputting
// test
/*for (int i=0;i<n;i++){
cout << v[i] << " ";
}
cout << endl;
for (int i=0;i<=v[n-1];i++){
cout <<i<<"//"<< d[i] << " ";
}*/
cout << k<<endl;
for (int i=0;i<k;i++){
cout <<sol[i] << " ";
}
}
