Cod sursa(job #495274)
| Utilizator | Data | 24 octombrie 2010 17:26:40 | |
|---|---|---|---|
| Problema | Economie | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<stdio.h>
#include<algorithm>
FILE *fin,*fout;
using namespace std;
int n,v[50001],ss[1001],i,a[1001],p,j;
int main(){
fin=fopen("economie.in","r");
fout=fopen("economie.out","w");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&a[i]);
}
sort(a+1,a+n+1);
v[0]=1;
for(i=1;i<=n;i++){
if(v[a[i]]==0){
ss[++p]=a[i];
for(j=0;j<=a[n]-a[i];j++){
if(v[j]==1){v[j+a[i]]=1;}
}
}
}
fprintf(fout,"%d",p);
for(i=1;i<=p;i++){
fprintf(fout,"\n%d",ss[i]);
}
return 0;}
