Cod sursa(job #39972)

Utilizator QbyxEros Lorand Qbyx Data 27 martie 2007 10:11:32
Problema Regiuni Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.21 kb
program regiuni_hube_konnyu_vot;
type egyenes = record
       a, b, c: integer;
     end;
     pont = record
       x, y: integer;
     end;
  poz = record
    a: real;
    b: word;
  end;
var
  Egyenesek: array[1..1000] of egyenes;
  Pontok: array[1..1000] of pont;
  Csoportok: array[1..1000] of poz;
  f: text;
  n, m, i, j, r: word;
  Voltake: array[1..1000] of boolean;

begin
  Assign(f, 'regiuni.in');
  Reset(f);
  ReadLn(f, n, m);
  for i := 1 to n do ReadLn(f, Egyenesek[i].a, Egyenesek[i].b, Egyenesek[i].c);
  for i := 1 to m do ReadLn(f, Pontok[i].x, Pontok[i].y);
  Close(f);

  for i := 1 to m do
    for j := 1 to n do
      if Egyenesek[j].a * Pontok[i].x + Egyenesek[j].b * Pontok[i].y + Egyenesek[j].c > 0 then
        begin
          Inc(Csoportok[i].b);
          Csoportok[i].a := Csoportok[i].a + j / Csoportok[i].b;
        end;

  r := m;
  for i := 1 to m do
    If not(voltake[i]) then
      for j := i + 1 to m do
        if (Csoportok[i].a = Csoportok[j].a) and (Csoportok[i].b = Csoportok[j].b) then
          begin
            Dec(r);
            Voltake[j] := true;
          end;

  Assign(f, 'regiuni.out');
  ReWrite(f);
  WriteLn(f, r);
  Close(f);
end.