Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8. Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
  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
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
///*** Naglowki Piotra Stanczyka

#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <algorithm>
#include <ctime>
#include <fstream>

using namespace std;
typedef vector<int> VI;
typedef long long LL;

#define FOR(x, b, e) for(int x=b; x<=(e); ++x)
#define FORD(x, b, e) for(int x=b; x>=(e); ��x)
#define REP(x, n) for(int x=0; x<(n); ++x)
#define VAR(v,n) typeof(n) v=(n)
#define ALL(c) c.begin(),c.end()
#define SIZE(x) (int)x.size()
#define FOREACH(i,c) for(VAR(i,(c).begin());i!=(c).end();++i)
#define PB push_back
#define ST first
#define ND second

struct Par
{
    int w1, w2, h1, h2;
};

bool operator == (Par a, Par b)
{
    return a.w1 == b.w1 && a.w2 == b.w2 &&
           a.h1 == b.h1 && a.h2 == b.h2;
}

const int size = 200000;
const int INF = 1000000300;

vector <Par> pars(size);

Par optPar(int n)
{
    Par result;
    int minw1 = INF, maxw2 = 0, minh1 = INF, maxh2 = 0;

    FOR(i, 1, n)
    {
        if(minw1 > pars[i].w1)minw1 = pars[i].w1;
        if(maxw2 < pars[i].w2)maxw2 = pars[i].w2;
        if(minh1 > pars[i].h1)minh1 = pars[i].h1;
        if(maxh2 < pars[i].h2)maxh2 = pars[i].h2;
    }

    result.w1 = minw1;
    result.w2 = maxw2;
    result.h1 = minh1;
    result.h2 = maxh2;
    return result;
}

int main()
{
    ios_base::sync_with_stdio(0);

    int t, n, wx1, wx2, hx1, hx2;
    Par par;
    bool check;

    //vector <string> test;
    //string temp;

    cin>>t;

    REP(x, t)
    {
        cin>>n;

        pars.clear();

        //test.clear();

        FOR(i, 1, n)
        {
            cin>>wx1>>wx2>>hx1>>hx2;

            par.w1 = wx1;
            par.w2 = wx2;
            par.h1 = hx1;
            par.h2 = hx2;

            pars[i] = par;
        }

        par = optPar(n);

        check = true;
        FOR(i, 1, n)if(par == pars[i])
        {
            check = false;
            cout<<"TAK\n";

            //temp = "TAK\n";
            //test.PB(temp);

            break;
        }
        if(check)
        {
            cout<<"NIE\n";

            //temp = "NIE\n";
            //test.PB(temp);
        }
    }

    //FOREACH(i, test)cout<<*i;

    return 0;
}