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
61
62
63
64
65
66
67
68
#include <cstdio>

using namespace std;

bool OK = true;
long long  w1, w2, h1, h2;

long long max(long long a, long long b)
{
	return a > b ?
		a : b;
}


long long min(long long a, long long b)
{
	return a > b ?
		b : a;
}

int main()
{
	int t;
	scanf("%d", &t);
	for( int i = 0; i < t; i++)
	{
		int n;
		scanf("%d", &n);
		w1 = h1 = 1000000000;
		w2 = h2 = 0;
		for( int oferta = 0; oferta < n; oferta++ )
		{
			long long tw1,tw2,th1,th2;
			scanf("%lld", &tw1);
			scanf("%lld", &tw2);
			scanf("%lld", &th1);
			scanf("%lld", &th2);
			// poszerzamy maxy
			if((tw1 <= w1 && tw2 >= w2)
					&& (th1 <= h1 && th2 >= h2))
					
			{
				OK = true;
			}
			// jestesmy w srodku
			else if( (tw1 >= w1 && tw2 <= w2) &&
					(th1 >= h1 && th2 <= h2) )
			{
				OK = OK; // nic sie nie zmienia
			}
			// dodajemy nowy zakres ale nie pokrywamy calego starego
			else
			{
				OK = false;
			}

			w1 = min(w1, tw1);
			h1 = min(h1, th1);
			w2 = max(w2, tw2);
			h2 = max(h2, th2);
		}
		if(OK)
			printf("TAK\n");
		else
			printf("NIE\n");
	}
	return 0;
}