Cod sursa(job #50116)

Utilizator florin_marius90Florin Marius Popescu florin_marius90 Data 6 aprilie 2007 21:04:45
Problema Regiuni Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.39 kb
type puncte=record
            x,y:-30000..30000;
            end;
     coef  =record
            a,b,c:-30000..30000;
            end;

var p:array[1..1000] of puncte;
    d:array[1..1000] of coef;
    v,v2:array[1..1000] of 1..1000;
    f,g:text;
    n,m,j,i,pula,bb,aa:1..1000;  aux:-30000..30000; ok:boolean;
begin
assign(f,'regiuni.in');  assign(g,'regiuni.out');
reset(f); rewrite(g);

readln(f,n,m);
for i:=1 to n do
 readln(f,d[i].a,d[i].b,d[i].c);

for i:=1 to m do
 begin
 readln(f,p[i].x,p[i].y);
 v[i]:=1;
 end;

ok:=true;
while ok do
 begin
 ok:=false;
 for i:=1 to m-1 do
  for j:=i+1 to m do
   if p[i].x>p[j].x then begin aux:=p[i].y; p[i].y:=p[j].y; p[j].y:=aux;
      ok:=true; aux:=p[i].x; p[i].x:=p[j].x; p[j].x:=aux; end;
 end;

ok:=true;
while ok do
 begin
 ok:=false;
 for i:=1 to m-1 do
  for j:=i+1 to m do
   if p[i].x=p[j].x then if p[i].y>p[j].y then begin ok:=true;aux:=p[i].x; p[i].x:=p[j].x; p[j].x:=aux;
   aux:=p[i].y; p[i].y:=p[j].y; p[j].y:=aux;end;
 end;

for i:=1 to n do
 begin
 for j:=1 to m do
  begin
  if d[i].a*p[j].x+d[i].b*p[j].y+d[i].c<0 then v2[j]:=1 else v2[j]:=2;
  end;
 aa:=v[1]; bb:=v2[1]; pula:=1;
 for j:=1 to m do
  if (aa=v[j]) and(bb=v2[j]) then v[j]:=pula
   else
    begin
    inc(pula);
    aa:=v[j];
    bb:=v2[j];
    v[j]:=pula;

    end;


 end;

 write(g,v[m]);
 close(f); close(g);

 end.