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.