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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import java.io.BufferedInputStream;
import java.util.Scanner;

public class lus {

	public static void main(String[] args) {
		Scanner odczyt = new Scanner(new BufferedInputStream(System.in));
		int iloscTestow = odczyt.nextInt();
		for (int i = 0; i < iloscTestow; i++) {
			int liczbaFirm = odczyt.nextInt();
			int minW = Integer.MAX_VALUE;
			int maxW = 0;
			int minH = Integer.MAX_VALUE;
			int maxH = 0;
			Kandydat najlepszyMozliwy = null;
			for (int j = 0; j < liczbaFirm; j++) {
				int w1 = odczyt.nextInt();
				int w2 = odczyt.nextInt();
				int h1 = odczyt.nextInt();
				int h2 = odczyt.nextInt();
				minW = Math.min(minW, w1);
				maxW = Math.max(maxW, w2);
				minH = Math.min(minH, h1);
				maxH = Math.max(maxH, h2);
				Kandydat prawdopodobny = new Kandydat(w1, w2, h1, h2);
				if (prawdopodobny.czyPasujeDo(minW, maxW, minH, maxH))
					najlepszyMozliwy = prawdopodobny;
			}
			if (najlepszyMozliwy != null && najlepszyMozliwy.czyPasujeDo(minW, maxW, minH, maxH))
				System.out.println("TAK");
			else
				System.out.println("NIE");
		}
		odczyt.close();
	}

}

class Kandydat {
	int w1;
	int w2;
	int h1;
	int h2;

	Kandydat(int w1, int w2, int h1, int h2) {
		this.w1 = w1;
		this.w2 = w2;
		this.h1 = h1;
		this.h2 = h2;
	}
	
	boolean czyPasujeDo(int minW, int maxW, int minH, int maxH){
		return (w1<=minW && w2>=maxW && h1<=minH && h2 >= maxH);
	}
}