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
56
57
58
59
60
#include <stdio.h>

#define NO	0
#define YES	1

#define MIN(a,b) (((a)<(b))?(a):(b))
#define MAX(a,b) (((a)>(b))?(a):(b))

int main(void)
{
	int t; /* ilość testów 1-10 */
	long int n; /* 2-100000 liczba zakładów */
	long int w1, w2, h1, h2; /* rozmiar 1-10^9 */
	
	long int wm1, wm2, hm1, hm2;
	int major;
		
	scanf("%d\n", &t); 
	
	//kolejny test
	while(t--)
	{
		wm1 = 1000000000L;
		wm2 = 1L;
		hm1 = 1000000000L;
		hm2 = 1L;
		major = NO;
		
		scanf("%ld\n", &n);
		
		//linie zakładów
		while(n--)
		{
			scanf("%ld %ld %ld %ld\n", &w1, &w2, &h1, &h2 );
			if( w1 <= wm1 && w2 >= wm2 && h1 <= hm1 && h2 >= hm2 ) //zakład mający największy asortyment
			{
			  wm1 = w1;
			  wm2 = w2;
			  hm1 = h1;
			  hm2 = h2;
			  major = YES;
			}
			else if( w1 >= wm1 && w2 <= wm2 && h1 >= hm1 && h2 <= hm2 ) //zakład mający asortyment mieszczący sie w innych
				;
			else //asortyment częściowo wykraczający poza dotychczasowe
			{
			  wm1 = MIN(w1,wm1);
			  wm2 = MAX(w2,wm2);
			  hm1 = MIN(h1,hm1);
			  hm2 = MAX(h2,hm2);
			  major = NO;
			}
		}
			printf("%s\n", major?"TAK":"NIE");
	}
	

		
	return 0;
}