Cod sursa(job #301002)

Utilizator punkistBarbulescu Dan punkist Data 7 aprilie 2009 20:47:13
Problema Economie Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.31 kb
type List=array[1..1010] of longint;
var n:integer;
    v,sol:List;
    fol:array[1..1010] of boolean;
    sols:integer;

procedure Citeste;
var f:text;
    i:integer;
begin
assign(f,'economie.in');
reset(f);
readln(f,n);
for i:=1 to n do readln(f,v[i]);
close(f);
end;

procedure QuickSort(var A: List; Lo, Hi: Integer);

procedure Sort(l, r: Integer);
var
  i, j, x, y: integer;
begin
  i := l; j := r; x := a[(l+r) DIV 2];
  repeat
    while a[i] < x do i := i + 1;
    while x < a[j] do j := j - 1;
    if i <= j then
    begin
      y := a[i]; a[i] := a[j]; a[j] := y;
      i := i + 1; j := j - 1;
    end;
  until i > j;
  if l < j then Sort(l, j);
  if i < r then Sort(i, r);
end;

begin {QuickSort};
  Sort(Lo,Hi);
end;

procedure Ciur;
 var i,j:integer;
 begin
  sols:=0;
  for i:=1 to n do fol[i]:=false;
 { for i:=1 to n do
   begin
    if not fol[i] then
     begin
      sols:=sols+1;
      sol[sols]:=v[i];
      for j:=i to n do
       begin
        if (v[j] mod v[i])=0 then fol[j]:=true;
       end;
     end;
   end; }
 end;

procedure Scrie;
var f:text;
    i:integer;
 begin
  assign(f,'economie.out');
  rewrite(f);
  writeln(f,sols);
  for i:=1 to sols do writeln(f,sol[i]);
  close(f);
 end;

begin
Citeste;
QuickSort(v,1,n);
Ciur;
Scrie;
end.