// Mateusz Kurek, PA 2014 // 1B LUS #include<cstdio> #include<cmath> #include<cstdlib> #include<algorithm> #include<vector> #include<string> #include<list> #include<deque> #include<map> #include<set> #include<queue> #include<stack> #include<utility> #include<sstream> #include<cstring> #include <string> //#include <iostream> using namespace std; #define REP(i,v)for(int i=0;i<(v);++i) #define FOR(i,x,v)for(int i=x;i<=(v);++i) #define FORD(i,x,v)for(int i=x;i>=(v);--i) #define VAR(v,n) __typeof(n) v = (n) #define FOREACH(i,c) for(VAR(i,(c).begin()); i != (c).end(); ++i) #define ALL(c) (c).begin(), c.end() #define PB push_back #define SZ size #define MP make_pair #define FI first #define SE second #define CL clear() #define RS resize #define INFTY 1000000001 #define EPS 10e-9 #define SIZE(x) ((int)(x).size()) typedef vector<int> VI; typedef vector<VI> VVI; typedef vector<bool> VB; typedef pair<int,int> PII; typedef long long LL; typedef vector<string> VS; void show(PII p) {printf("(%d %d)\n",p.FI,p.SE);} void show(VI e) {REP(i,SIZE(e)) printf("%d ",e[i]); printf("\n");} void show(vector<PII> e) {REP(i,SIZE(e)) printf("(%d %d) ",e[i].FI,e[i].SE); printf("\n");} void show(VS e) {REP(i,SIZE(e)) printf("%s\n",e[i].c_str());} void show(VVI e) {REP(i,SIZE(e)) show(e[i]);} #define MAXN 100001 int w1s[MAXN], w2s[MAXN], h1s[MAXN], h2s[MAXN]; int main() { int t, n, w1, w2, h1, h2, w1min, w2max, h1min, h2max; bool found; scanf("%d", &t); while(t--){ w1min = h1min = INFTY; w2max = h2max = -INFTY; found = false; scanf("%d", &n); REP(i, n){ scanf("%d %d %d %d", &w1s[i], &w2s[i], &h1s[i], &h2s[i]); w1min = min(w1min, w1s[i]); w2max = max(w2max, w2s[i]); h1min = min(h1min, h1s[i]); h2max = max(h2max, h2s[i]); } REP(i, n){ if(w1s[i] == w1min && w2s[i] == w2max && h1s[i] == h1min && h2s[i] == h2max){ found = true; break; } } printf("%s\n", found ? "TAK" : "NIE"); } }
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 86 87 88 89 90 91 92 93 94 | // Mateusz Kurek, PA 2014 // 1B LUS #include<cstdio> #include<cmath> #include<cstdlib> #include<algorithm> #include<vector> #include<string> #include<list> #include<deque> #include<map> #include<set> #include<queue> #include<stack> #include<utility> #include<sstream> #include<cstring> #include <string> //#include <iostream> using namespace std; #define REP(i,v)for(int i=0;i<(v);++i) #define FOR(i,x,v)for(int i=x;i<=(v);++i) #define FORD(i,x,v)for(int i=x;i>=(v);--i) #define VAR(v,n) __typeof(n) v = (n) #define FOREACH(i,c) for(VAR(i,(c).begin()); i != (c).end(); ++i) #define ALL(c) (c).begin(), c.end() #define PB push_back #define SZ size #define MP make_pair #define FI first #define SE second #define CL clear() #define RS resize #define INFTY 1000000001 #define EPS 10e-9 #define SIZE(x) ((int)(x).size()) typedef vector<int> VI; typedef vector<VI> VVI; typedef vector<bool> VB; typedef pair<int,int> PII; typedef long long LL; typedef vector<string> VS; void show(PII p) {printf("(%d %d)\n",p.FI,p.SE);} void show(VI e) {REP(i,SIZE(e)) printf("%d ",e[i]); printf("\n");} void show(vector<PII> e) {REP(i,SIZE(e)) printf("(%d %d) ",e[i].FI,e[i].SE); printf("\n");} void show(VS e) {REP(i,SIZE(e)) printf("%s\n",e[i].c_str());} void show(VVI e) {REP(i,SIZE(e)) show(e[i]);} #define MAXN 100001 int w1s[MAXN], w2s[MAXN], h1s[MAXN], h2s[MAXN]; int main() { int t, n, w1, w2, h1, h2, w1min, w2max, h1min, h2max; bool found; scanf("%d", &t); while(t--){ w1min = h1min = INFTY; w2max = h2max = -INFTY; found = false; scanf("%d", &n); REP(i, n){ scanf("%d %d %d %d", &w1s[i], &w2s[i], &h1s[i], &h2s[i]); w1min = min(w1min, w1s[i]); w2max = max(w2max, w2s[i]); h1min = min(h1min, h1s[i]); h2max = max(h2max, h2s[i]); } REP(i, n){ if(w1s[i] == w1min && w2s[i] == w2max && h1s[i] == h1min && h2s[i] == h2max){ found = true; break; } } printf("%s\n", found ? "TAK" : "NIE"); } } |