Cod sursa(job #918763)

Utilizator apopeid13Apopeid Alejandro apopeid13 Data 19 martie 2013 09:28:54
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <stdio.h>
using namespace std;
long i,j,aux,max,tr,n,a[1100],b[1100],c[51000];
int main()
{
freopen("economie.in","r",stdin);
freopen("economie.out","w",stdout);
scanf("%ld",&n);
for(i=1;i<=n;i++)
scanf("%ld",&a[i]);
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(a[i]>a[j]) {
aux=a[i];
a[i]=a[j];
a[j]=aux;
}
max=a[n];
for(i=1;i<=n;i++)
if(c[a[i]]==0) {
tr++;
b[tr]=a[i];
c[a[i]]=1;
for(j=1;j<=max-a[i];j++)
if(c[j]==1) c[j+a[i]]=1;
}
printf("%ld\n",tr);
for(i=1;i<=tr;i++) printf("%ld\n",b[i]);
return 0;
}