Cod sursa(job #1233428)
Utilizator | Data | 25 septembrie 2014 12:28:57 | |
---|---|---|---|
Problema | Economie | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <fstream>
using namespace std;
ifstream fin("economie.in");
ofstream fout("economie.out");
int i,n,j,x,Max,h,a[50001],v[50001];
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x;
a[x]=1;
if(Max<x)
Max=x;
}
if (a[1]==1)
fout<<1<<'\n'<<1;
else{
v[0]=1;
for(i=1;i<=Max;i++)
{
if(a[i]==1)
{
for(j=0;j<=Max-i;j++)
{
if(v[j]!=0&&v[j+i]!=1)
{
v[j+i]=1;
if (a[i]!=2){
a[i]=2;
h++;}
}
}
}
}
fout<<h<<'\n';
for(i=1;i<=Max;i++)
if(a[i]==2)
fout<<i<<" ";
}
return 0;
}