Cod sursa(job #120915)

Utilizator florin_marius90Florin Marius Popescu florin_marius90 Data 7 ianuarie 2008 11:14:18
Problema Economie Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1 kb
type
     vevtor=array[1..1000] of 1..50000;
     vector2=array[1..50000] of 0..1;

var n:integer;
    v,sol:vevtor;
    v2:vector2;
    i,j,x,k,kkt,aux,s:integer;
    f,g:text;
    ok:boolean;
    y:1..50000;
begin
assign(f,'economie.in'); assign(g,'economie.out');
reset(f); rewrite(g);
readln(f,n);
for y:=1 to 50000 do v2[i]:=0;
for i:=1 to n do
 readln(f,v[i]);
ok:=true;
while ok do
begin
ok:=false;
for i:=1 to n-1 do
begin

 if  v[i]>v[i+1] then begin ok:=true; aux:=v[i]; v[i]:=v[i+1]; v[i+1]:=aux;end;
end;
end;
kkt:=v[n];   s:=1; sol[s]:=v[1]; s:=2; x:=v[1];
for j:=x to (kkt div v[1]) do
  v2[j*v[1]]:=1;
for i:=2 to n do
 begin
 if v2[v[i]]=0 then
      begin
      sol[s]:=v[i];
      inc(s);
      for j:=x to (kkt div v[i])  do
       begin
       v2[j*v[i]]:=1;
       for k:=x to kkt-(v[i]+x) do
        if v2[k]<>0 then
         v2[v[i]+k]:=1;
       end;
      end;
 end;
writeln(g,s-1);
for i:=1 to s-1 do
 writeln(g,sol[i]);
 close(f); close(g);

end.