#include <cstdio> using namespace std; const int infty = 1000000001; int min(int a, int b) { return (a<b ? a :b); } int max(int a, int b) { return (a>b ? a :b); } struct Rozmiar { int minX, minY, maxX, maxY; Rozmiar(int a, int b, int c, int d) { minX = a; maxX = b; minY = c; maxY = d; }; Rozmiar() { Rozmiar(0,0,0,0); } void print() { printf("%d %d %d %d\n", minX, maxX, minY, maxY); } }; bool operator>(Rozmiar A, Rozmiar B) { if ( (A.minX <= B.minX) && (A.minY <= B.minY) && (A.maxX >= B.maxX) && (A.maxY >= B.maxY)) return true; return false; } Rozmiar span(Rozmiar A, Rozmiar B) { return Rozmiar( min(A.minX, B.minX) , max(A.maxX, B.maxX) , min(A.minY, B.minY) , max(A.maxY, B.maxY)); } int main() { int t,n; bool currentAnswer; Rozmiar currentSpan, nowyRozmiar; scanf("%d",&t); while(t--) { currentAnswer = true; currentSpan = Rozmiar(infty, 0, infty, 0); scanf("%d",&n); while (n--) { scanf("%d%d%d%d", &nowyRozmiar.minX, &nowyRozmiar.maxX, &nowyRozmiar.minY, &nowyRozmiar.maxY); if (nowyRozmiar > currentSpan) { currentSpan = nowyRozmiar; currentAnswer = true; } else if (currentSpan > nowyRozmiar) continue; else { currentAnswer = false; currentSpan = span(currentSpan, nowyRozmiar); } } if (currentAnswer) printf("TAK\n"); else printf("NIE\n"); } }
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 | #include <cstdio> using namespace std; const int infty = 1000000001; int min(int a, int b) { return (a<b ? a :b); } int max(int a, int b) { return (a>b ? a :b); } struct Rozmiar { int minX, minY, maxX, maxY; Rozmiar(int a, int b, int c, int d) { minX = a; maxX = b; minY = c; maxY = d; }; Rozmiar() { Rozmiar(0,0,0,0); } void print() { printf("%d %d %d %d\n", minX, maxX, minY, maxY); } }; bool operator>(Rozmiar A, Rozmiar B) { if ( (A.minX <= B.minX) && (A.minY <= B.minY) && (A.maxX >= B.maxX) && (A.maxY >= B.maxY)) return true; return false; } Rozmiar span(Rozmiar A, Rozmiar B) { return Rozmiar( min(A.minX, B.minX) , max(A.maxX, B.maxX) , min(A.minY, B.minY) , max(A.maxY, B.maxY)); } int main() { int t,n; bool currentAnswer; Rozmiar currentSpan, nowyRozmiar; scanf("%d",&t); while(t--) { currentAnswer = true; currentSpan = Rozmiar(infty, 0, infty, 0); scanf("%d",&n); while (n--) { scanf("%d%d%d%d", &nowyRozmiar.minX, &nowyRozmiar.maxX, &nowyRozmiar.minY, &nowyRozmiar.maxY); if (nowyRozmiar > currentSpan) { currentSpan = nowyRozmiar; currentAnswer = true; } else if (currentSpan > nowyRozmiar) continue; else { currentAnswer = false; currentSpan = span(currentSpan, nowyRozmiar); } } if (currentAnswer) printf("TAK\n"); else printf("NIE\n"); } } |