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
#include <stdio.h>
#include <set>
#include <algorithm>
#include <iostream>
using namespace std;

void wypisz(int t[100010], int s)
{
  cout << s << ": ";
  for(int i=0;i<s;i++)
  {
    cout << " " << t[i];
  }
  cout << endl;
}

int main()
{
  int t, n;
  scanf("%d",&t);
  for(;t--;)
  {
    scanf("%d",&n);
    int s[4][100010];
    int idx[4]={0,0,0,0};
    int m[4];
    m[0]=m[2]=1111111111;
    m[1]=m[3]=-1111111111;
    for (int i=0;i<n;i++)
    {
      int a;
      for(int j=0;j<4;j++)
      {
        scanf("%d",&a);
//        cout << "a:"<< a << ", j:"<<j<<", m[j]:"<< m[j]<<endl;
        if (a==m[j]) {s[j][idx[j]]=i;idx[j]++;}
        else if ((j%2 && a>m[j]) || (j%2==0 && a<m[j]))
        {
          idx[j]=1;
          s[j][0]=i;
          m[j]=a;
        }
      }
    }
    for(int j=0;j<4;j++)
    {
      sort(s[j],s[j]+idx[j]);
//      wypisz(s[j],idx[j]);
    }
    int r1[100010],r2[100010],r3[100010];
    int *r = set_intersection(s[0],s[0]+idx[0],s[1],s[1]+idx[1],r1);
    r = set_intersection(r1,r,s[2],s[2]+idx[2],r2);
    r = set_intersection(r2,r,s[3],s[3]+idx[3],r3);
    if (r-r3==0) cout << "NIE" << endl;
    else cout << "TAK" << endl;
  }
  return 0;
}