Pagini recente » Cod sursa (job #966953) | Cod sursa (job #2922298) | Cod sursa (job #369816) | Cod sursa (job #2535283) | Cod sursa (job #48286)
Cod sursa(job #48286)
type puncte=record
x,y:integer;
end;
deter=record
a,b,c:integer;
end;
vector=array[1..1000] of puncte;
var f,g:text;
d:array[1..1000] of deter;
v1,v2,vv1,vv2,p,v:vector;
lv1,lv2,lv,lvv1,lvv2,n,m,c,i,j:integer;
function pozitiv(pp:puncte; dd:deter):boolean;
begin
if dd.a*pp.x+dd.b*pp.y+dd.c>0 then pozitiv:=true
else pozitiv:=false;
end;
procedure drepte(i:integer; v:vector; lv:integer);
begin
lv1:=0; lv2:=0;
for j:=1 to lv do
if pozitiv(v[j],d[i]) then begin inc(lv1); v1[lv1]:=v[j]; end
else begin inc(lv2); v2[lv2]:=v[j]; end;
if i=n then
begin
if (lv1=0)or(lv2=0) then c:=c+1
else c:=c+2;
end
else begin
if lv1<>0 then drepte(i+1,v1,lv1);
if lv2<>0 then drepte(i+1,v2,lv2);
end;
end;
begin
assign(f,'regiuni.in');
reset(f);
readln(f,n,m);
for i:=1 to n do readln(f,d[i].a,d[i].b,d[i].c);
lvv1:=0;
lvv2:=0;
for i:=1 to m do
begin
readln(f,p[i].x,p[i].y);
if pozitiv(p[i],d[1]) then begin inc(lvv1); vv1[lvv1]:=p[i]; end
else begin inc(lvv2); vv2[lvv2]:=p[i]; end;
end;
c:=0;
if lvv1<>0 then drepte(2,vv1,lvv1);
if lvv2<>0 then drepte(2,vv2,lvv2);
close(f);
assign(g,'regiuni.out');
rewrite(g);
writeln(g,c);
close(g);
end.