program PAR;
type
pozycja=record
x1,y1,x2,y2:longint;
end;
pozycje=array[1..50000] of pozycja;
var
p1,p2:pozycje;
wynik:Boolean;
t,n,w,i,j,k:Integer;
begin
readln(t);
for i:=1 to t do
begin
readln(n,w);
for j:=1 to n do
readln(p1[j].x1,p1[j].y1,p1[j].x2,p1[j].y2);
for j:=1 to n do
readln(p2[j].x1,p2[j].y1,p2[j].x2,p2[j].y2);
j:=1;
wynik:=true;
while wynik and (j<n) do
begin
k:=j+1;
while wynik and (k<=n) do
begin
if ((p1[j].x1<=p1[k].x1) and (p2[j].x1>=p2[k].x1) or
(p1[j].x1>=p1[k].x1) and (p2[j].x1<=p2[k].x1)) and
(p1[j].y2-p1[j].y1+p1[k].y2-p1[k].y1>w) then
wynik:=false;
k:=k+1;
end;
j:=j+1;
end;
if wynik then writeln ('TAK')
else writeln ('NIE');
end;
end.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | program PAR; type pozycja=record x1,y1,x2,y2:longint; end; pozycje=array[1..50000] of pozycja; var p1,p2:pozycje; wynik:Boolean; t,n,w,i,j,k:Integer; begin readln(t); for i:=1 to t do begin readln(n,w); for j:=1 to n do readln(p1[j].x1,p1[j].y1,p1[j].x2,p1[j].y2); for j:=1 to n do readln(p2[j].x1,p2[j].y1,p2[j].x2,p2[j].y2); j:=1; wynik:=true; while wynik and (j<n) do begin k:=j+1; while wynik and (k<=n) do begin if ((p1[j].x1<=p1[k].x1) and (p2[j].x1>=p2[k].x1) or (p1[j].x1>=p1[k].x1) and (p2[j].x1<=p2[k].x1)) and (p1[j].y2-p1[j].y1+p1[k].y2-p1[k].y1>w) then wynik:=false; k:=k+1; end; j:=j+1; end; if wynik then writeln ('TAK') else writeln ('NIE'); end; end. |
English