Cod sursa(job #2106237)
| Utilizator | Data | 15 ianuarie 2018 15:16:41 | |
|---|---|---|---|
| Problema | Economie | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int n, a[1005], fr[50001], maxi, nr=0, sol[1005], t=0;
ifstream f("economie.in");
ofstream g("economie.out");
int main()
{
f >> n;
for (int i=0; i<n; i++)
{
f >> a[i];
}
sort(a,a+n);
maxi=a[n-1];
fr[0]=1;
for (int j=0; j<n; j++)
{
if (fr[a[j]]==0)
{nr++;
sol[t++]=a[j];
}
for (int i=0; i<=maxi; i++)
{
if (fr[i]==1)
{
fr[i+a[j]]=1;
}
}
}
g << nr<<'\n';
for (int i=0; i<t; i++)
g <<sol[i] <<' ';
return 0;
}
