Pagini recente » Cod sursa (job #1523317) | Cod sursa (job #519942) | Cod sursa (job #950979) | Cod sursa (job #1056262) | Cod sursa (job #41792)
Cod sursa(job #41792)
{
Problema regiuni
}
Program regiuni;
Type dreapta = record
a, b, c : Longint;
end;
elm = record
x, y : Longint;
end;
vector = array[1..1000] of elm;
Var n, m, i, grf : Longint;
d : array[1..1000] of dreapta;
viz : array[-10000..10000] of 0..1;
vv : array[1..1000] of Integer;
v : vector;
vert, cod : boolean;
mm, nn : real;
j, p : Integer;
Begin
Assign( input, 'regiuni.in' );
Reset( input );
Readln( n, m );
For i := 1 to n do
Readln( d[i].a, d[i].b, d[i].c );
For i := 1 to m do
Readln( v[i].x, v[i].y );
Close( input );
For i := 1 to n do
BEgin
If d[i].b = 0 then
Begin
vert := true;
mm := 0;
nn := -d[i].c/d[i].a;
End
else
Begin
vert := false;
mm := -d[i].a/d[i].b;
nn := -d[i].c/d[i].b;
End;
For j := 1 to m do
Begin
Case vert of
true: if v[j].x > nn then cod := true
else cod := false;
false: if v[j].y < mm*v[j].x + nn then cod := true
else cod := false;
End;
If cod then vv[j] := vv[j]+i
else vv[j] := -vv[j]-i;
End;
End;
grf := 0;
For i := 1 to m do
If viz[vv[i]] = 0 then
Begin
grf := grf +1;
viz[vv[i]] := 1;
End;
Assign( output, 'regiuni.out' );
Rewrite( output );
Writeln( grf );
Close( output );
End.