#include <cstdio>
#include <iostream>
#include <tuple>
#include <vector>
using namespace std;
typedef tuple<int,int,int,int> QI;
QI maj(const QI& a, const QI& b) {
int x, y, z, t;
int X, Y, Z, T;
tie(x, y, z, t) = a;
tie(X, Y, Z, T) = b;
return make_tuple(min(x, X), max(y, Y), min(z, Z), max(t, T));
}
void test() {
int n;
cin >> n;
vector<QI> vec;
vec.reserve(n);
for(int i=0; i<n; ++i) {
int a, b, c, d;
cin >> a >> b >> c >> d;
vec.push_back(make_tuple(a, b, c, d));
}
QI maj_all = vec.front();
for(auto &tup : vec) {
maj_all = maj(maj_all, tup);
}
bool is_maj = false;
for(auto &tup : vec) {
if(tup == maj_all) {
is_maj = true;
break;
}
}
cout << (is_maj? "TAK\n" : "NIE\n");
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
while(t--) test();
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 | #include <cstdio> #include <iostream> #include <tuple> #include <vector> using namespace std; typedef tuple<int,int,int,int> QI; QI maj(const QI& a, const QI& b) { int x, y, z, t; int X, Y, Z, T; tie(x, y, z, t) = a; tie(X, Y, Z, T) = b; return make_tuple(min(x, X), max(y, Y), min(z, Z), max(t, T)); } void test() { int n; cin >> n; vector<QI> vec; vec.reserve(n); for(int i=0; i<n; ++i) { int a, b, c, d; cin >> a >> b >> c >> d; vec.push_back(make_tuple(a, b, c, d)); } QI maj_all = vec.front(); for(auto &tup : vec) { maj_all = maj(maj_all, tup); } bool is_maj = false; for(auto &tup : vec) { if(tup == maj_all) { is_maj = true; break; } } cout << (is_maj? "TAK\n" : "NIE\n"); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int t; cin >> t; while(t--) test(); return 0; } |
English