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. |