#include<algorithm> #include<bitset> #include<cassert> #include<complex> #include<cstdio> #include<cstring> #include<iomanip> #include<iostream> #include<map> #include<queue> #include<set> #include<stack> #include<string> #include<vector> #define FOR(i, a, b) for(int i =(a); i <=(b); ++i) #define FORD(i, a, b) for(int i = (a); i >= (b); --i) #define REP(i, n) for(int i = 0;i <(n); ++i) #define VAR(v, i) __typeof(i) v=(i) #define FORE(i, c) for(VAR(i, (c).begin()); i != (c).end(); ++i) #define ALL(x) (x).begin(), (x).end() #define SZ(x) ((int)(x).size()) #define PB push_back #define MP make_pair #define X first #define Y second #define debug(x) {cerr <<#x <<" = " <<x <<endl; } #define debugv(x) {{cerr <<#x <<" = "; FORE(itt, (x)) cerr <<*itt <<", "; cerr <<endl; }} using namespace std; typedef long long LL; typedef long double LD; typedef pair<int, int> PII; typedef vector<int> VI; template<class C> void mini(C&a4, C b4){a4=min(a4, b4); } template<class C> void maxi(C&a4, C b4){a4=max(a4, b4); } template<class T1, class T2> ostream& operator<< (ostream &out, pair<T1, T2> pair) { return out << "(" << pair.X << ", " << pair.Y << ")";} struct lus{ int x1, x2, y1, y2; lus(){}; lus(int x1_, int x2_,int y1_, int y2_): x1(x1_),x2(x2_),y1(y1_),y2(y2_){}; bool operator==(const lus& b) const { return MP(MP(x1,x2),MP(y1,y2)) == MP(MP(b.x1, b.x2), MP(b.y1, b.y2)); }; }; vector<lus> vl; int main2() { vl.clear(); int n; scanf("%d", &n); lus best; REP(i, n) { int x1,x2,y1,y2; scanf("%d %d %d %d", &x1, &x2, &y1, &y2); vl.PB(lus(x1,x2,y1,y2)); if(i == 0) best = lus(x1,x2,y1,y2); else { mini(best.x1, x1); maxi(best.x2, x2); mini(best.y1, y1); maxi(best.y2, y2); }; }; for(auto& l : vl) { if(l == best) { printf("TAK\n"); return 0; }; }; printf("NIE\n"); return 0; }; int main(){ int T; scanf("%d", &T); while(T--) main2(); 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 | #include<algorithm> #include<bitset> #include<cassert> #include<complex> #include<cstdio> #include<cstring> #include<iomanip> #include<iostream> #include<map> #include<queue> #include<set> #include<stack> #include<string> #include<vector> #define FOR(i, a, b) for(int i =(a); i <=(b); ++i) #define FORD(i, a, b) for(int i = (a); i >= (b); --i) #define REP(i, n) for(int i = 0;i <(n); ++i) #define VAR(v, i) __typeof(i) v=(i) #define FORE(i, c) for(VAR(i, (c).begin()); i != (c).end(); ++i) #define ALL(x) (x).begin(), (x).end() #define SZ(x) ((int)(x).size()) #define PB push_back #define MP make_pair #define X first #define Y second #define debug(x) {cerr <<#x <<" = " <<x <<endl; } #define debugv(x) {{cerr <<#x <<" = "; FORE(itt, (x)) cerr <<*itt <<", "; cerr <<endl; }} using namespace std; typedef long long LL; typedef long double LD; typedef pair<int, int> PII; typedef vector<int> VI; template<class C> void mini(C&a4, C b4){a4=min(a4, b4); } template<class C> void maxi(C&a4, C b4){a4=max(a4, b4); } template<class T1, class T2> ostream& operator<< (ostream &out, pair<T1, T2> pair) { return out << "(" << pair.X << ", " << pair.Y << ")";} struct lus{ int x1, x2, y1, y2; lus(){}; lus(int x1_, int x2_,int y1_, int y2_): x1(x1_),x2(x2_),y1(y1_),y2(y2_){}; bool operator==(const lus& b) const { return MP(MP(x1,x2),MP(y1,y2)) == MP(MP(b.x1, b.x2), MP(b.y1, b.y2)); }; }; vector<lus> vl; int main2() { vl.clear(); int n; scanf("%d", &n); lus best; REP(i, n) { int x1,x2,y1,y2; scanf("%d %d %d %d", &x1, &x2, &y1, &y2); vl.PB(lus(x1,x2,y1,y2)); if(i == 0) best = lus(x1,x2,y1,y2); else { mini(best.x1, x1); maxi(best.x2, x2); mini(best.y1, y1); maxi(best.y2, y2); }; }; for(auto& l : vl) { if(l == best) { printf("TAK\n"); return 0; }; }; printf("NIE\n"); return 0; }; int main(){ int T; scanf("%d", &T); while(T--) main2(); return 0; } |