#include <iostream> #include <list> using namespace std; int main() { int iteracje_glowne; // wydobycie info o liczbie iteracji głównego programu cin >> iteracje_glowne; // główna pętla programu while (iteracje_glowne > 0) { long long int przypadki; // pobranie info o ilości przypadków cin >> przypadki; // tworzenie zmiennych long long* wmin = new long long [przypadki]; long long* wmax = new long long [przypadki]; long long* hmin = new long long [przypadki]; long long* hmax = new long long [przypadki]; // pobranie kolejnych danych for(int i = 0; i < przypadki; i++) { cin >> wmin[i]; cin >> wmax[i]; cin >> hmin[i]; cin >> hmax[i]; } bool znaleziona = false; // wyszukanie w long long index_wmin = 0; long long wart_wmin = 0; // !!!!!!! long long index_wmax = 0; long long wart_wmax = 0; long long index_hmin = 0; long long wart_hmin = 0; long long index_hmax = 0; long long wart_hmax = 0; list<long int> lista; // wmin wart_wmin=wmin[0]; for(int i=0; i<przypadki; i++) // znalezienie warotści potencjalnych linii spełniających warunek if(wmin[i]<wart_wmin) wart_wmin=wmin[i]; for(int i=0; i<przypadki; i++) // znalezienie potencjalnych linii spełniających warunek if(wmin[i]==wart_wmin) lista.push_back(i); // wmax for(int i=0; i<przypadki; i++) // znalezienie warotści potencjalnych linii spełniających warunek if(wmax[i]>wart_wmax) wart_wmax=wmax[i]; // hmin wart_hmin=hmin[0]; for(int i=0; i<przypadki; i++) // znalezienie warotści potencjalnych linii spełniających warunek if(hmin[i]<wart_hmin) wart_hmin=hmin[i]; // hmax for(int i=0; i<przypadki; i++) // znalezienie warotści potencjalnych linii spełniających warunek if(hmax[i]>wart_hmax) wart_hmax=hmax[i]; if( !lista.empty() ) { for( list<long int>::iterator iter=lista.begin(); iter != lista.end(); ) { if(wmax[*iter] == wart_wmax) { if(hmin[*iter] == wart_hmin) { if(hmax[*iter] == wart_hmax) { if(znaleziona == false) { znaleziona = true;} else{ // znaleziona = false; break; } } } } iter++; } } // porównanie i zwrócenie wyniku if(znaleziona) cout << "TAK \n"; else cout << "NIE\n"; iteracje_glowne--; } 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 86 87 88 89 90 91 92 93 | #include <iostream> #include <list> using namespace std; int main() { int iteracje_glowne; // wydobycie info o liczbie iteracji głównego programu cin >> iteracje_glowne; // główna pętla programu while (iteracje_glowne > 0) { long long int przypadki; // pobranie info o ilości przypadków cin >> przypadki; // tworzenie zmiennych long long* wmin = new long long [przypadki]; long long* wmax = new long long [przypadki]; long long* hmin = new long long [przypadki]; long long* hmax = new long long [przypadki]; // pobranie kolejnych danych for(int i = 0; i < przypadki; i++) { cin >> wmin[i]; cin >> wmax[i]; cin >> hmin[i]; cin >> hmax[i]; } bool znaleziona = false; // wyszukanie w long long index_wmin = 0; long long wart_wmin = 0; // !!!!!!! long long index_wmax = 0; long long wart_wmax = 0; long long index_hmin = 0; long long wart_hmin = 0; long long index_hmax = 0; long long wart_hmax = 0; list<long int> lista; // wmin wart_wmin=wmin[0]; for(int i=0; i<przypadki; i++) // znalezienie warotści potencjalnych linii spełniających warunek if(wmin[i]<wart_wmin) wart_wmin=wmin[i]; for(int i=0; i<przypadki; i++) // znalezienie potencjalnych linii spełniających warunek if(wmin[i]==wart_wmin) lista.push_back(i); // wmax for(int i=0; i<przypadki; i++) // znalezienie warotści potencjalnych linii spełniających warunek if(wmax[i]>wart_wmax) wart_wmax=wmax[i]; // hmin wart_hmin=hmin[0]; for(int i=0; i<przypadki; i++) // znalezienie warotści potencjalnych linii spełniających warunek if(hmin[i]<wart_hmin) wart_hmin=hmin[i]; // hmax for(int i=0; i<przypadki; i++) // znalezienie warotści potencjalnych linii spełniających warunek if(hmax[i]>wart_hmax) wart_hmax=hmax[i]; if( !lista.empty() ) { for( list<long int>::iterator iter=lista.begin(); iter != lista.end(); ) { if(wmax[*iter] == wart_wmax) { if(hmin[*iter] == wart_hmin) { if(hmax[*iter] == wart_hmax) { if(znaleziona == false) { znaleziona = true;} else{ // znaleziona = false; break; } } } } iter++; } } // porównanie i zwrócenie wyniku if(znaleziona) cout << "TAK \n"; else cout << "NIE\n"; iteracje_glowne--; } return 0; } |