#include <iostream>
//#define MINSIZE 0
//#define MAXSIZE 1000000001
//#define IMPSBL -1
using namespace std;
struct extrSize {
static const int MINSIZE = 0;
static const int MAXSIZE = 1000000001;
static const int IMPSBL = -1;
int minSize;
int maxSize;
int idx;
void clean () {
maxSize = MINSIZE;
minSize = MAXSIZE;
idx = IMPSBL;
}
bool isGreaterThan (extrSize* s1);
};
/*
inline int max (int a, int b) {
return (a > b) ? a : b;
}
inline int min (int a, int b) {
return (a < b) ? a : b;
}
*/
bool extrSize::isGreaterThan (extrSize* s1) {
if (minSize <= s1->minSize && maxSize >= s1->maxSize) {
return true;
}
return false;
}
/*
void prs(extrSize* s) {
cout << "[" << s->idx << ":" << s->minSize << "," << s->maxSize << "]" << endl;
}
*/
int main () {
extrSize inw, inh, extrw, extrh;
int t, n, j, i;
cin >> t;
while (t--) {
extrw.clean ();
extrh.clean ();
cin >> n;
while (n--) {
cin >> inw.minSize >> inw.maxSize >> inh.minSize >> inh.maxSize;
if (inw.isGreaterThan (&extrw) == true) {
extrw.minSize = inw.minSize;
extrw.maxSize = inw.maxSize;
extrw.idx = n;
}
if (inh.isGreaterThan (&extrh) == true) {
extrh.minSize = inh.minSize;
extrh.maxSize = inh.maxSize;
extrh.idx = n;
}
}
//cout << extrw.idx << " " << extrw.minSize << " " << extrw.maxSize << " ";
//cout << "extrw: "; prs (&extrw);
//cout << extrh.idx << " " << extrh.minSize << " " << extrh.maxSize << " ";
//cout << "extrh: "; prs (&extrh);
if (extrw.idx == extrh.idx && extrw.idx != extrSize::IMPSBL) {
cout << "TAK";
} else {
cout << "NIE";
}
cout << endl;
}
return 0;
}
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 | #include <iostream> //#define MINSIZE 0 //#define MAXSIZE 1000000001 //#define IMPSBL -1 using namespace std; struct extrSize { static const int MINSIZE = 0; static const int MAXSIZE = 1000000001; static const int IMPSBL = -1; int minSize; int maxSize; int idx; void clean () { maxSize = MINSIZE; minSize = MAXSIZE; idx = IMPSBL; } bool isGreaterThan (extrSize* s1); }; /* inline int max (int a, int b) { return (a > b) ? a : b; } inline int min (int a, int b) { return (a < b) ? a : b; } */ bool extrSize::isGreaterThan (extrSize* s1) { if (minSize <= s1->minSize && maxSize >= s1->maxSize) { return true; } return false; } /* void prs(extrSize* s) { cout << "[" << s->idx << ":" << s->minSize << "," << s->maxSize << "]" << endl; } */ int main () { extrSize inw, inh, extrw, extrh; int t, n, j, i; cin >> t; while (t--) { extrw.clean (); extrh.clean (); cin >> n; while (n--) { cin >> inw.minSize >> inw.maxSize >> inh.minSize >> inh.maxSize; if (inw.isGreaterThan (&extrw) == true) { extrw.minSize = inw.minSize; extrw.maxSize = inw.maxSize; extrw.idx = n; } if (inh.isGreaterThan (&extrh) == true) { extrh.minSize = inh.minSize; extrh.maxSize = inh.maxSize; extrh.idx = n; } } //cout << extrw.idx << " " << extrw.minSize << " " << extrw.maxSize << " "; //cout << "extrw: "; prs (&extrw); //cout << extrh.idx << " " << extrh.minSize << " " << extrh.maxSize << " "; //cout << "extrh: "; prs (&extrh); if (extrw.idx == extrh.idx && extrw.idx != extrSize::IMPSBL) { cout << "TAK"; } else { cout << "NIE"; } cout << endl; } return 0; } |
English