Cod sursa(job #40533)

Utilizator ben_henryRuben Fagadar ben_henry Data 27 martie 2007 14:50:40
Problema Regiuni Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.98 kb
program regiuni;
type coord=record x,y:integer end;
var d:array[1..1000] of record a,b,c:integer end;
    a:array[1..1000] of coord;
    m,n,nr,i:integer;
    f:text;

function sgn(i,l:integer):integer;
begin
   sgn:=d[l].a*a[i].x+d[i].b*a[i].y+d[i].c;
end;

procedure sort(st,dr,l:integer);
var k,i,j:integer;
    aux:coord;
begin
   i:=st;
   j:=dr;
   repeat
      if sgn(i,l)>0 then inc(i)
      else begin
        aux:=a[i];
        a[i]:=a[j];
        a[j]:=aux;
        j:=j-1;
      end;
   until j-i=1;
   if sgn(i,l)<0 then dec(i);
   if i>=1 then inc(nr);
   if l<n then begin
      if i-st>=1 then sort(st,i,l+1);
      if dr-i>1 then sort(i+1,dr,l+1);
   end;
end;

begin
   assign(f,'regiuni.in'); reset(f);
   readln(f,n,m); {n linii     m puncte}
   for i:=1 to n do readln(f,d[i].a,d[i].b,d[i].c);
   for i:=1 to m do readln(f,a[i].x,a[i].y);
   nr:=0;
   sort(1,m,1);
   assign(f,'regiuni.out'); rewrite(f);
   writeln(f,nr);
   close(f);
end.