// Potyczki Algorytmiczne 2014 // Zadanie: LUS // Lustra [B] #include <climits> #include <iostream> using namespace std; int main() { int liczbaTestow; cin >> liczbaTestow; for (int i = 0; i < liczbaTestow; i++) { int minimalnaSzerokosc = INT_MAX; int minimalnaWysokosc = INT_MAX; int maksymalnaSzerokosc = 0; int maksymalnaWysokosc = 0; int liczbaZakladow; cin >> liczbaZakladow; bool czyMajoryzuje = false; for (int j = 0; j < liczbaZakladow; j++) { int punktA_szerokosc; cin >> punktA_szerokosc; int punktB_szerokosc; cin >> punktB_szerokosc; int punktA_wysokosc; cin >> punktA_wysokosc; int punktB_wysokosc; cin >> punktB_wysokosc; if ((punktA_szerokosc <= minimalnaSzerokosc) && (punktA_wysokosc <= minimalnaWysokosc)) { if ((punktB_szerokosc >= maksymalnaSzerokosc) && (punktB_wysokosc >= maksymalnaWysokosc)) { czyMajoryzuje = true; minimalnaSzerokosc = punktA_szerokosc; minimalnaWysokosc = punktA_wysokosc; maksymalnaSzerokosc = punktB_szerokosc; maksymalnaWysokosc = punktB_wysokosc; } } if (punktA_szerokosc < minimalnaSzerokosc) { minimalnaSzerokosc = punktA_szerokosc; czyMajoryzuje = false; } if (punktA_wysokosc < minimalnaWysokosc) { minimalnaWysokosc = punktA_wysokosc; czyMajoryzuje = false; } if (punktB_szerokosc > maksymalnaSzerokosc) { maksymalnaSzerokosc = punktB_szerokosc; czyMajoryzuje = false; } if (punktB_wysokosc > maksymalnaWysokosc) { maksymalnaWysokosc = punktB_wysokosc; czyMajoryzuje = false; } } cout << (czyMajoryzuje ? "TAK" : "NIE") << endl; } 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 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 | // Potyczki Algorytmiczne 2014 // Zadanie: LUS // Lustra [B] #include <climits> #include <iostream> using namespace std; int main() { int liczbaTestow; cin >> liczbaTestow; for (int i = 0; i < liczbaTestow; i++) { int minimalnaSzerokosc = INT_MAX; int minimalnaWysokosc = INT_MAX; int maksymalnaSzerokosc = 0; int maksymalnaWysokosc = 0; int liczbaZakladow; cin >> liczbaZakladow; bool czyMajoryzuje = false; for (int j = 0; j < liczbaZakladow; j++) { int punktA_szerokosc; cin >> punktA_szerokosc; int punktB_szerokosc; cin >> punktB_szerokosc; int punktA_wysokosc; cin >> punktA_wysokosc; int punktB_wysokosc; cin >> punktB_wysokosc; if ((punktA_szerokosc <= minimalnaSzerokosc) && (punktA_wysokosc <= minimalnaWysokosc)) { if ((punktB_szerokosc >= maksymalnaSzerokosc) && (punktB_wysokosc >= maksymalnaWysokosc)) { czyMajoryzuje = true; minimalnaSzerokosc = punktA_szerokosc; minimalnaWysokosc = punktA_wysokosc; maksymalnaSzerokosc = punktB_szerokosc; maksymalnaWysokosc = punktB_wysokosc; } } if (punktA_szerokosc < minimalnaSzerokosc) { minimalnaSzerokosc = punktA_szerokosc; czyMajoryzuje = false; } if (punktA_wysokosc < minimalnaWysokosc) { minimalnaWysokosc = punktA_wysokosc; czyMajoryzuje = false; } if (punktB_szerokosc > maksymalnaSzerokosc) { maksymalnaSzerokosc = punktB_szerokosc; czyMajoryzuje = false; } if (punktB_wysokosc > maksymalnaWysokosc) { maksymalnaWysokosc = punktB_wysokosc; czyMajoryzuje = false; } } cout << (czyMajoryzuje ? "TAK" : "NIE") << endl; } return 0; } |