Informatika gyűjtemény

Egy szinttel feljebb pt_army.pas

2004050607080910

NézetNyomtat

pt_army.pas (Vissza)
Az alábbi letöltési lehetőségek közül választhatsz: (segítség)
Karakterkódolás:
Sortörés:
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 1 KB
program army;

type TTomb  = array of longint;

var R,N:longint;
    t:TTomb;

function load:boolean;
var i:longint;
begin
  readln(R,N);
  
  result:=false;
  if (R=-1)and(N=-1) then exit else result:=true;

  setlength(t,N+1);  
  for i:=1 to N do read(t[i]);
  
  t[0]:=-R-1;
end;

procedure swap(var x,y:longint);
var z:longint;
begin
  z:=x;
  x:=y;
  y:=z;
end;

procedure msort(var t:TTomb;N:longint);
var i,j,min:longint;
begin
  for i:=1 to N-1 do
    begin
      min:=i;
      for j:=i+1 to N do if t[j]<t[min] then min:=j;
      swap(t[min],t[i]);
    end;
end;

var baj,db,last,i:longint;
begin
  while(load)do
    begin
      msort(t,N);
      
      db:=0;
      last:=0;
      baj:=0;
      
      for i:=1 to N do
        begin
          if (baj<>0) and (t[i]-> t[baj]) then
            begin
              inc(db);
              last:=i-1;
              baj:=0;
            end;
          if (t[last]+< t[i])and(baj=0) then baj:=i;
        end;
      
      if baj<>0 then inc(db);
      writeln(db);
    end;
end.
 
(Vissza)