Cod sursa(job #40604)

Utilizator ben_henryRuben Fagadar ben_henry Data 27 martie 2007 15:46:07
Problema Regiuni Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.99 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[l].b*a[i].y+d[l].c;
end;

procedure sort(st,dr,l:integer);
var i,j:integer;
    aux:coord;
begin
   i:=st-1;
   j:=dr+1;
   repeat
      if sgn(i+1,l)>0 then inc(i)
      else begin
        aux:=a[i+1];
        a[i+1]:=a[j-1];
        a[j-1]:=aux;
        j:=j-1;
      end;
   until j-i=1;
   if (i>=st) and (j<=dr) then inc(nr);
   if l<n then begin
      if i>st then sort(st,i,l+1);
      if j<dr then sort(j,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);
   close(f);
   nr:=1;
   sort(1,m,1);
   assign(f,'regiuni.out'); rewrite(f);
   writeln(f,nr);
   close(f);
end.