Pagini recente » Cod sursa (job #1014612) | Cod sursa (job #1302535) | Cod sursa (job #1405035) | Cod sursa (job #2529838) | Cod sursa (job #141909)
Cod sursa(job #141909)
//economie
#include<stdio.h>
FILE*fin=fopen("economie.in","r");
FILE*fout=fopen("economie.out","w");
#define max 50001
int s[1001],e[max],v[max],r[1001];
int main()
{
int n,vmax=0,dim=0,nr,i,j;
fscanf(fin,"%d",&n);
for(i=1;i<=max;i++)
e[i]=0;
for(i=1;i<=n;i++)
{
fscanf(fin,"%d",&nr);
e[nr]=1;
if(nr>vmax) vmax=nr;
}
fclose(fin);
n=0;nr=0;
for(i=1;i<=vmax;i++)
if(e[i])
{
n++;s[n]=i;
v[i]=0;
}
v[0]=1;
for(i=1;i<=n;i++)
if(v[s[i]]==0)
{
for(j=s[i];j<=vmax;j++)
if(!v[j]&&v[j-s[i]])
{
v[j]=1;
if(e[j]==1) nr++;
}
dim++;
r[dim]=s[i];
if(nr==n) break;
}
fprintf(fout,"%d\n",dim);
for(i=1;i<=dim;i++)
fprintf(fout,"%d\n",r[i]);
fclose(fout);
return 0;
}