Pagini recente » Cod sursa (job #1599402) | Cod sursa (job #2105782) | Cod sursa (job #1227282) | Cod sursa (job #2880430) | Cod sursa (job #40194)
Cod sursa(job #40194)
{$q-,r-,s-,d-,i-}
const maxn=1006;
var t:Text;
Px,Py,A,B,C,grad,Grad2,O,O2:array[0..maxn]of integer;
return,aux,dreapta,grup,lg,lg2,i,n,m:integer;
cele0,cele1:boolean;
procedure semn(dreapta,punct:integer);
begin
aux:=A[dreapta]*Px[punct]+B[dreapta]*Py[punct]+C[dreapta];
if aux>0 then return:=+1 else if aux<0 then return:=-1 else return:=0;
end;
begin
assign(T,'regiuni.in');reset(T);readln(T,m,n);
for i:=1 to m do readln(t,A[i],B[i],C[i]);
for i:=1 to N do begin O[i]:=i;readln(t,Px[i],Py[i]);end;close(T);
lg:=1;Grad[0]:=0;Grad[1]:=N;
for dreapta:=1 to M do
begin
lg2:=0;fillchar(grad2,sizeof(grad2),0);o2:=grad2;
for grup:=1 to lg do
begin
inc(lg2);grad2[lg2]:=grad2[lg2-1];Grad2[lg2+1]:=Grad[grup];
cele0:=false;cele1:=false;
for i:=grad[grup-1]+1 to grad[grup] do
begin
semn(dreapta,O[i]);
if return<0 then
begin
cele0:=true;inc(grad2[lg2]);O2[grad2[lg2]]:=O[i];
end else
begin
cele1:=true;O2[grad2[lg2+1]]:=O[i];dec(grad2[lg2+1]);
end;
end;
if cele1 and cele0 then inc(lg2);
Grad2[lg2]:=Grad[grup];
end;
lg:=lg2;Grad:=grad2;O:=o2;
end;
assign(t,'regiuni.out');rewrite(t);writeln(t,lg);close(T);
end.