Pagini recente » Cod sursa (job #1067033) | Cod sursa (job #2516630) | Cod sursa (job #725367) | Cod sursa (job #3286620) | Cod sursa (job #925761)
Cod sursa(job #925761)
#include<fstream>
#include<algorithm>
#include<vector>
#define VAL_MAX 50004
using namespace std;
int a[1004],n;
bool ap[VAL_MAX];
vector<int>sol;
void Citire()
{
ifstream fin("economie.in");
fin>>n;
for(int i=1;i<=n;i++)
fin>>a[i];
fin.close();
sort(a+1,a+n+1);
}
void Rezolvare()
{
int i,j,maxval = a[n];
for(i=1;i<=n;i++)
if(ap[a[i]]==0)//daca nu puteam forma suma a[i] cu elementele precedente
{
sol.push_back(a[i]);
ap[a[i]] = 1;
for(j=1;j<=maxval-a[i];j++)
if(ap[j])
ap[j+a[i]] = 1;
}
}
void Afisare()
{
int i,lim;
ofstream fout("economie.out");
lim = sol.size();
fout<<lim<<"\n";
for(i=0;i<lim;i++)
fout<<sol[i]<<"\n";
fout.close();
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}