Pagini recente » Cod sursa (job #616721) | Cod sursa (job #2601624) | Cod sursa (job #1480594) | Cod sursa (job #575935) | Cod sursa (job #2731335)
#include <fstream>
#include <algorithm>
#define NMAX 1000
using namespace std;
ifstream fin ("economie.in");
ofstream fout ("economie.out");
int n,v[NMAX+3],k,sol[NMAX+3];
bool dp[50003];
int main()
{
fin>>n;
for(int i=1; i<=n; i++)
{
fin>>v[i];
}
sort(v+1,v+n+1);
int elem=v[n];
for(int i=1; i<=n; i++)
{
if(dp[v[i]]==false)
{
//nu pot forma moneda asta
sol[++k]=v[i];
dp[v[i]]=1;
//marchez celelalte valori
for(int j=1; j<=elem-v[i]; j++)
{
if(dp[j]!=0)
{
dp[j+v[i]]=1;
}
}
}
}
fout<<k<<"\n";
for(int i=1; i<=k; i++)
{
fout<<sol[i]<<" ";
}
return 0;
}