Cod sursa(job #118352)

Utilizator ProtomanAndrei Purice Protoman Data 24 decembrie 2007 17:09:21
Problema Economie Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.38 kb
const mx=50001;

var f1,f2:text;
    i,j,n,h:longint;
    vr,v,a,rez,c:array[0..100000] of longint;
begin
        assign(f1,'economie.in');
        reset(f1);
        assign(f2,'economie.out');
        rewrite(f2);
        read(f1,n);
        for i:=1 to n do
        begin
                read(f1,a[i]);
                inc(c[a[i]]);
        end;
        for i:=1 to mx do
                for j:=1 to c[i] do
                begin
                        inc(h);
                        a[h]:=i;
                end;
        vr[0]:=1;
        vr[1]:=0;
        h:=0;
        for i:=1 to n do
                if v[a[i]]=0 then
                begin
                        inc(h);
                        rez[h]:=a[i];
                        j:=0;
                        while j<vr[0] do
                        begin
                                inc(j);
                                if (vr[j]+a[i]<mx)and(v[vr[j]+a[i]]=0) then
                                begin
                                        v[vr[j]+a[i]]:=1;
                                        inc(vr[0]);
                                        vr[vr[0]]:=vr[j]+a[i];
                                end;
                        end;
                end;
        writeln(f2,h);
        for i:=1 to h do
                write(f2,rez[i],' ');
        close(f1);
        close(f2);
end.