// 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; } |
English