Cod sursa(job #214721)

Utilizator FllorynMitu Florin Danut Flloryn Data 15 octombrie 2008 19:03:56
Problema Economie Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.4 kb
program pascal;
var f,g:text;
    n:0..1000;
    i,k,j,p,q,aux:0..100000;
    v,t:array[0..1000] of 0..50000;  ok:boolean;
    x:array[0..100000] of 0..50000000;


begin
assign(f,'economie.in'); reset(f);
assign(g,'economie.out'); rewrite(g);
readln(f,n);
for i:=1 to n do  readln(f,v[i]);
repeat
ok:=true;
 for i:=1 to n-1 do
  if v[i]>v[i+1] then
     begin
       aux:=v[i];
       v[i]:=v[i+1];
       v[i+1]:=aux;
       ok:=false;
     end;
until ok;

k:=1;
t[1]:=v[1];
x[1]:=t[1];
q:=1;

if t[1]=1 then
    begin
        writeln(g,1);
        write(g,1);
    end
     else
      begin
         for i:=2 to n do
         begin
             ok:=true;
             for j:=1 to q do
              if v[i] mod x[j]=0 then
                             begin
                               ok:=false;
                               break;
                             end;
             if ok then
              begin
                k:=k+1;
                t[k]:=v[i];
                aux:=q;
                for j:=1 to q do
                    begin
                      inc(aux);
                      x[aux]:=x[j]+v[i];
                    end;
               inc(aux);
               x[aux]:=v[i];
               q:=aux;
              end;
           end;
          writeln(g,k);
          for p:=1 to k do writeln(g,t[p]);
        end;

close(f);
close(g);
end.