#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; } |