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
// Karol Różycki Zadnanie Lustra
#include<cstdio>
#define MAX 100010
using namespace std;

struct mirror{
	long long int w1, w2, h1, h2;
};

bool mycmp(const mirror& i, const mirror& j){
	if(i.w2 * i.h2 != j.w2 * j.h2){
		return i.w2 * i.h2 < j.w2 * j.h2;
	}else{
		return -i.w1 * i.h1 < -j.w1 * j.h1;
	}
}

mirror MIRRORS[MAX];

int main(){
	int t;
	scanf("%d", &t);
	while(t--){
		int n;
		scanf("%d", &n);
		for(int i = 0; i < n; i++){
			scanf("%lld %lld %lld %lld", &MIRRORS[i].w1,  &MIRRORS[i].w2, &MIRRORS[i].h1, &MIRRORS[i].h2);
		}
		int index = -1;
		for(int i = 0; i < n; i++){
			if(index == -1 || mycmp(MIRRORS[index], MIRRORS[i])){
				index = i;
			}
		}
		bool covers_all = true;
		for(int i = 0; i < n; i++){
			if(MIRRORS[i].w1 < MIRRORS[index].w1 || MIRRORS[i].w2 > MIRRORS[index].w2 || MIRRORS[i].h1 < MIRRORS[index].h1 || MIRRORS[i].h2 > MIRRORS[index].h2){
				covers_all = false;
				break;
			}
		}
		if(covers_all){
			printf("TAK\n");
		}else{
			printf("NIE\n");
		}
	}
	return 0;
}