Cod sursa(job #37479)

Utilizator adalLica Adela adal Data 25 martie 2007 10:22:08
Problema Regiuni Scor 100
Compilator fpc Status done
Runda preONI 2007, Runda 4, Clasele 11-12 Marime 1.27 kb
program regiuni;
type point=^nod;
   nod=record
     s,d:point;
  end;
  rec1=record
   a,c,b:longint;
  end;
  rec2=record
    x,y:longint;
  end;
var f,g:text;
    b,p,p1:point;
    i,par,j,n,m,nr:longint;
    ok:boolean;
    d:array[0..1005] of rec1;
    pct:array[0..1005] of rec2;
function parte(a1,b1,c1,x1,y1:longint):longint;
begin
  parte:=a1*x1+b1*y1+c1;
end;

begin
  assign(f,'regiuni.in'); reset(f);
  assign(g,'regiuni.out'); rewrite(g);
  readln(f,n,m);
  for i:=1 to n do read(f,d[i].a,d[i].b,d[i].c);
  for i:=1 to m do read(f,pct[i].x,pct[i].y);
  new(b); b^.s:=nil; b^.d:=nil;
  p:=b; nr:=0;
  for i:=1 to m do begin
    p:=b;  ok:=true;
    for j:=1 to n do begin
      par:=parte(d[j].a,d[j].b,d[j].c,pct[i].x,pct[i].y);
      if par<0 then begin
        if p^.s=nil then begin
          new(p1); p1^.s:=nil; p1^.d:=nil;
          p^.s:=p1; p:=p1;
          ok:=false;
        end
        else p:=p^.s;
      end
      else begin
        if p^.d=nil then begin
          new(p1); p1^.s:=nil; p1^.d:=nil;
          p^.d:=p1; p:=p1;
          ok:=false;
        end
        else p:=p^.d;
      end;
    end;
    if ok=false then inc(nr);
  end;
  writeln(g,nr);
  close(f); close(g);
end.
    if ok=false then inc(nr);
  end;