#include <cstdio> #define MIN 1000000001 #define MAX 0 typedef struct szybaaaa{ long long minW, maxW, minH, maxH; } szyba; int main(){ int t, ileZes, ileFirm; scanf("%d", &ileZes); for(int t = 0; t<ileZes; t++){ bool major = true; scanf("%d", &ileFirm); szyba *tab = new szyba[ileFirm]; szyba lider; lider.minW = MAX; lider.minH = MAX; lider.maxW = MIN; lider.maxH = MIN; scanf("%lld%lld%lld%lld", &tab[0].minW, &tab[0].maxW, &tab[0].minH, &tab[0].maxH); lider = tab[0]; for(int i=1; i<ileFirm; i++){ scanf("%lld%lld%lld%lld", &tab[i].minW, &tab[i].maxW, &tab[i].minH, &tab[i].maxH); if(tab[i].minW <= lider.minW && tab[i].minH <= lider.minH && tab[i].maxW >= lider.maxW && tab[i].maxH >= lider.maxH){ major = true; lider = tab[i]; continue; } if(tab[i].minW >= lider.minW && tab[i].minH >= lider.minH && tab[i].maxW <= lider.maxW && tab[i].maxH <= lider.maxH) continue; if(major == true && (tab[i].minW >= lider.minW || tab[i].minH >= lider.minH || tab[i].maxW <= lider.maxW || tab[i].maxH <= lider.maxH)){ major = false; lider.minW = (tab[i].minW <= lider.minW) ? tab[i].minW : lider.minW; lider.minH = (tab[i].minH <= lider.minH) ? tab[i].minH : lider.minH; lider.maxW = (tab[i].maxW >= lider.maxW) ? tab[i].maxW : lider.maxW; lider.maxH = (tab[i].maxH >= lider.maxH) ? tab[i].maxH : lider.maxH; continue; } } if(major == true) 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include <cstdio> #define MIN 1000000001 #define MAX 0 typedef struct szybaaaa{ long long minW, maxW, minH, maxH; } szyba; int main(){ int t, ileZes, ileFirm; scanf("%d", &ileZes); for(int t = 0; t<ileZes; t++){ bool major = true; scanf("%d", &ileFirm); szyba *tab = new szyba[ileFirm]; szyba lider; lider.minW = MAX; lider.minH = MAX; lider.maxW = MIN; lider.maxH = MIN; scanf("%lld%lld%lld%lld", &tab[0].minW, &tab[0].maxW, &tab[0].minH, &tab[0].maxH); lider = tab[0]; for(int i=1; i<ileFirm; i++){ scanf("%lld%lld%lld%lld", &tab[i].minW, &tab[i].maxW, &tab[i].minH, &tab[i].maxH); if(tab[i].minW <= lider.minW && tab[i].minH <= lider.minH && tab[i].maxW >= lider.maxW && tab[i].maxH >= lider.maxH){ major = true; lider = tab[i]; continue; } if(tab[i].minW >= lider.minW && tab[i].minH >= lider.minH && tab[i].maxW <= lider.maxW && tab[i].maxH <= lider.maxH) continue; if(major == true && (tab[i].minW >= lider.minW || tab[i].minH >= lider.minH || tab[i].maxW <= lider.maxW || tab[i].maxH <= lider.maxH)){ major = false; lider.minW = (tab[i].minW <= lider.minW) ? tab[i].minW : lider.minW; lider.minH = (tab[i].minH <= lider.minH) ? tab[i].minH : lider.minH; lider.maxW = (tab[i].maxW >= lider.maxW) ? tab[i].maxW : lider.maxW; lider.maxH = (tab[i].maxH >= lider.maxH) ? tab[i].maxH : lider.maxH; continue; } } if(major == true) printf("TAK\n"); else printf("NIE\n"); } return 0; } |