#include <cstdio> #include <algorithm> using namespace std; struct str{ int w1,w2,h1,h2; str(int w1=0, int w2=0, int h1=0, int h2=0): w1(w1), w2(w2), h1(h1), h2(h2) {} } t[1000010]; bool cmp(str i, str j){ if (i.w1!=j.w1) return i.w1<j.w1; if (i.w2!=j.w2) return i.w2>j.w2; if (i.h1!=j.h1) return i.h1<j.h1; return i.h2>j.h2; } int z,n; int main(){ scanf("%d", &z); while (z--){ scanf("%d", &n); for (int i=0; i<n; ++i){ int a,b,c,d; scanf("%d%d%d%d", &a, &b, &c, &d); t[i]=str(a,b,c,d); } sort(t,t+n,cmp); int minh=t[1].h1, maxh=t[1].h2; for (int i=2; i<n; ++i){ if (t[i].h1<minh) minh=t[i].h1; if (t[i].h2>maxh) maxh=t[i].h2; } if (t[0].h1<=minh && t[0].h2>=maxh) printf("TAK\n"); else printf("NIE\n"); } 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 | #include <cstdio> #include <algorithm> using namespace std; struct str{ int w1,w2,h1,h2; str(int w1=0, int w2=0, int h1=0, int h2=0): w1(w1), w2(w2), h1(h1), h2(h2) {} } t[1000010]; bool cmp(str i, str j){ if (i.w1!=j.w1) return i.w1<j.w1; if (i.w2!=j.w2) return i.w2>j.w2; if (i.h1!=j.h1) return i.h1<j.h1; return i.h2>j.h2; } int z,n; int main(){ scanf("%d", &z); while (z--){ scanf("%d", &n); for (int i=0; i<n; ++i){ int a,b,c,d; scanf("%d%d%d%d", &a, &b, &c, &d); t[i]=str(a,b,c,d); } sort(t,t+n,cmp); int minh=t[1].h1, maxh=t[1].h2; for (int i=2; i<n; ++i){ if (t[i].h1<minh) minh=t[i].h1; if (t[i].h2>maxh) maxh=t[i].h2; } if (t[0].h1<=minh && t[0].h2>=maxh) printf("TAK\n"); else printf("NIE\n"); } return 0; } |