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