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
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int dataSets=0;
    int set=0;
    int offerents=0;
    int i=0;
    int w1=0,w2=0,h1=0,h2=0;
    int minw, maxw, minh, maxh;
    char majorant;
    int oMinw, oMaxw, oMinh, oMaxh;
    int mMinw, mMaxw, mMinh, mMaxh;
    scanf("%i", &dataSets);
    for (set = 0; set < dataSets; ++set) {
        scanf("%i", &offerents);
        for (i = 0; i < offerents; ++i) {
            scanf("%i %i %i %i", &w1, &w2, &h1, &h2);
            if (i == 0) {
                majorant = 1;
                oMinw = w1;
                oMaxw = w2;
                oMinh = h1;
                oMaxh = h2;
                mMinw = w1;
                mMaxw = w2;
                mMinh = h1;
                mMaxh = h2;
            }
            if (w1 < oMinw) {
                oMinw = w1;
            }
            if (w2 > oMaxw) {
                oMaxw = w2;
            }
            if (h1 < oMinh) {
                oMinh = h1;
            }
            if (h2 > oMaxh) {
                oMaxh = h2;
            }
            if (majorant == 1) {
                if (oMinw < mMinw || mMaxw < oMaxw || oMinh < mMinh || mMaxh < oMaxh) {
                    // obecny majorant nie obejmuje juz obrysu
                    majorant = 0;
                }
            }
            if (w1 <= oMinw && oMaxw <= w2 && h1 <= oMinh && oMaxh <= h2) {
                // obecny dostawca jest kandydatem na majoranta
                if (majorant == 1) {
                    //istnieje wczesniejsy majorant, sprawdzamy, czy nowy jest lepszy lub taki sam
                    if (w1 <= mMinw && mMaxw <= w2 && h1 <= mMinh && mMaxh <= h2) {
                        //obecny jest lepszy!
                        mMinw = w1;
                        mMaxw = w2;
                        mMinh = h1;
                        mMaxh = h2;
                    }
                } else {
                    // nie bylo wczesniej majoranta wiec obecny nim zostaje
                    mMinw = w1;
                    mMaxw = w2;
                    mMinh = h1;
                    mMaxh = h2;
                    majorant = 1;
                }
            }
        }
        if (majorant == 1) {
                printf("TAK\n");
        } else {
                printf("NIE\n");
        }
    }

    return 0;
}