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