Cod sursa(job #274671)

Utilizator MihaiBunBunget Mihai MihaiBun Data 9 martie 2009 22:01:07
Problema Economie Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.54 kb
program aliu;
type vector=array[1..1000] of longint;
var f:text;
    a,b:vector;
    v:array[1..1000] of 0..1;
    i,j,n,nr,k,x,kk:longint;
    e:boolean;

procedure poz(li,ls:longint;var kk:longint;var a:vector);
var p,q,c,p1,q1:longint;
begin
   p1:=0;
   q1:=-1;
   p:=li;
   q:=ls;
   while p<q do
     begin
       if a[p]>a[q]  then begin
                                                  c:=a[p];
                                                  a[p]:=a[q];
                                                  a[q]:=c;
                                                  c:=p1;
                                                  p1:=-q1;
                                                  q1:=-c
                                                 end;
       p:=p+p1;
       q:=q+q1;
     end;
    kk:=p;
  end;

  procedure quick(li,ls:longint);
  begin
    if li<ls then begin
                     poz(li,ls,kk,a);
                     quick(li,kk-1);
                     quick(kk+1,ls)
                  end;
  end;


begin
  assign(f,'economie.in');
  reset(f);
  readln(f,n);
  for i:=1 to n do readln(f,a[i]);
  close(f);
  assign(f,'economie.out');
  rewrite(f);
  quick(1,n);
  nr:=0;
  for i:=1 to n-1 do
    if v[i]=0 then begin
                        nr:=nr+1;
                        b[nr]:=a[i];
                        for j:=i+1 to n do
                          if (a[j] mod a[i])=0 then v[j]:=1;
                      end;
  writeln(f,nr);
  for i:=1 to nr do writeln(f,b[i]);
  close(f);
end.