Cod sursa(job #56963)

Utilizator info_arrandrei gigea info_arr Data 30 aprilie 2007 20:43:00
Problema Regiuni Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.3 kb
{$IFDEF NORMAL}
  {$I-,Q-,R-,S-}
{$ENDIF NORMAL}
{$IFDEF DEBUG}
  {$I+,Q+,R+,S-}
{$ENDIF DEBUG}
{$IFDEF RELEASE}
  {$I-,Q-,R-,S-}
{$ENDIF RELEASE}

const lmax=35;
      cst=30;
      nmax=1001;

var s:array[1..lmax,1..nmax] of integer;
    a,b,c:array[1..nmax] of integer;
    aux:array[1..lmax] of integer;
    i,j,x,y,k,n,m:integer;
    fi,fo:text;
begin
assign(fi,'regiuni.in'); reset(fi);
assign(fo,'regiuni.out'); rewrite(fo);
readln(fi,n,m);
for i:=1 to n do
 readln(fi,a[i],b[i],c[i]);
for i:=1 to m do
 begin
  readln(fi,x,y);
  for j:=1 to n do
   if (a[j]*x+b[j]*y+c[j]>0) then
    s[i,j div cst]:=s[i][j div cst] or (1 shl(j mod cst));
 end;
//sortare
{ for i:=1 to n do
    begin
     j:=i;
     while (j div 2<>0) and (a[j div 2]<a[j]) do
      begin
        aux:=a[j div 2];
        a[j div 2]:=a[j];
        a[j]:=aux;
        j:=j div 2;
      end;
    end;
   i:=n;
   while i>1 do
    begin
     aux:=a[1];
     a[1]:=a[i];
     a[i]:=aux;
     dec(i);
     j:=1;
     while (1>0) do
      begin
       k:=2*j;
       if (k>i) then  break;
       if (k+1<=i) and (a[k+1]>a[k]) then inc(k);
       if a[j]>=a[k] then break;

       aux:=a[j];
       a[j]:=a[k];
       a[k]:=aux;
       j:=k;
      end;
     end;}
  writeln(fo,0);
  close(fo);
end.