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
69
70
71
72
73
74
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class lus {
    public static void main(String [] args ) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        int T;
        StringBuilder sb = new StringBuilder();
        line = br.readLine();
        T = Integer.parseInt(line);
        for(;T>0;T--) {
            List<Rect> list = new ArrayList<Rect>();
            int n;
            line = br.readLine();
            n = Integer.parseInt(line);
            for(;n>0;n--){
                line = br.readLine();
                String [] tab = line.split(" ");
                Rect rect = new Rect();
                rect.x = Long.parseLong(tab[0]);
                rect.width = Long.parseLong(tab[1]) - rect.x;
                rect.y = Long.parseLong(tab[2]);
                rect.height = Long.parseLong(tab[3]) - rect.y;
                list.add(rect);
            }
            Rect rect = enclose(list);
            boolean exists= false;
            for(Rect rect1: list){
                if(rect1.x == rect.x && rect1.y == rect.y && rect1.width == rect.width && rect1.height == rect.height){
                    exists = true;
                    break;
                }
            }
            if(exists) {
                sb.append("TAK");
            } else {
                sb.append("NIE");
            }
            if(T>1)
                sb.append('\n');

        }
        System.out.print(sb);
    }
    static Rect enclose(List<Rect> list) {
        long topLeftX = Integer.MAX_VALUE;
        long topLeftY = Integer.MAX_VALUE;
        long bottomRightX = Integer.MIN_VALUE;
        long bottomRightY = Integer.MIN_VALUE;

        for (Rect r : list) {
            if (r.x < topLeftX)
                topLeftX = r.x;

            if (r.y < topLeftY)
                topLeftY = r.y;

            if ((r.x + r.width) > bottomRightX)
                bottomRightX = (r.x + r.width);

            if ((r.y + r.height) > bottomRightY)
                bottomRightY = (r.y + r.height);
        }
        Rect res = new Rect();
        res.x = topLeftX; res.y =  topLeftY; res.width= bottomRightX - topLeftX;res.height =  bottomRightY - topLeftY;
        return res;
    }
    static class Rect {
        long x,y,width,height;
    }
}