Pagini recente » Cod sursa (job #2508592) | Borderou de evaluare (job #2530432) | Borderou de evaluare (job #948810) | Borderou de evaluare (job #2208194) | Cod sursa (job #2501219)
#include <fstream>
#include <algorithm>
using namespace std;
int v[1005],f[50005],viz[50005],s[1005];
int main()
{
ifstream cin("economie.in");
ofstream cout("economie.out");
int n,k=0,x,ma=-1;
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>x;
if(viz[x]==0)
{
viz[x]=1;
v[++k]=x;
if(x>ma)
ma=x;
}
}
sort(v+1,v+k+1);
int cnt=0;
if(v[1]==1)
{
cout<<1<<"\n"<<1;
return 0;
}
for(int i=1; i<=k; i++)
{
if(f[v[i]]==0)
{
f[v[i]]=1;
cnt++;
s[cnt]=v[i];
for(int j=v[1];j<=ma;j++)
{
if(f[j]==1)
{
f[j+v[i]]=1;
}
}
}
}
cout<<cnt<<"\n";
for(int i=1; i<=cnt; i++)
cout<<s[i]<<" ";
return 0;
}