Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8. Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
 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
//Komiwoja�er Bajtazar
//lca na drzewie
#include <cstdio>
#include <cmath>
#include <vector>
#define mini -1
#define maxi 1000000007
using namespace std;

struct firma{
	int w1,w2,h1,h2;
	
};
vector<firma>  wszystkie;
vector<int> ile;
int n,t,licznik=0;
bool bylo=false;
int mw1,mw2,mh1,mh2;//ekstremalne wartosci
firma pom;
int main(){
	scanf("%d",&t);
	for(int i=0;i<t;++i){//inicjalizacja
		scanf("%d",&n);
		ile.push_back(n);
		for(int j=0;j<n;++j){
			scanf("%d%d%d%d",&pom.w1,&pom.w2,&pom.h1,&pom.h2);
			wszystkie.push_back(pom);
		}
		
	}
	for(int i=0;i<t;++i){
		mw1=wszystkie[licznik].w1;//pierwsza warto��
		mw2=wszystkie[licznik].w2;
		mh1=wszystkie[licznik].h1;
		mh2=wszystkie[licznik].h2;
		bylo=false;
		for(int j=licznik+1;j<licznik+ile[i];++j){//liczenie esktrem�w
			mw1=min(wszystkie[j].w1,mw1);
			mw2=max(wszystkie[j].w2,mw2);
			mh1=min(wszystkie[j].h1,mh1);
			mh2=max(wszystkie[j].h2,mh2);
			
		}
		//printf("%d %d %d %d\n",mw1,mw2,mh1,mh2);
		for(int j=licznik;j<licznik+ile[i];++j){
			if((wszystkie[j].w1<=mw1)&&(wszystkie[j].w2>=mw2)&&(wszystkie[j].h1<=mh1)&&(wszystkie[j].h2>=mh2))bylo=true;//sprawdzenie majoranty
		}
		if(bylo)printf("TAK\n");
		else printf("NIE\n");
		
		
		licznik+=ile[i];
	
	}
	
	
	

	return 0;
}