#include <cstdio>
#include <vector>
typedef struct {
unsigned int minW, maxW;
unsigned int minH, maxH;
}dimensions;
bool isMajor(dimensions d1, dimensions d2){
return( (d1.minW <= d2.minW) &&
(d1.maxW >= d2.minW) &&
(d1.minH <= d2.minH) &&
(d1.maxH >= d2.maxH) )? true : false;
}
bool isEqual(dimensions d1, dimensions d2){
return( (d1.minW == d2.minW) &&
(d1.maxW == d2.minW) &&
(d1.minH == d2.minH) &&
(d1.maxH == d2.maxH) )? true : false;
}
using namespace std;
int main(void){
unsigned int t;
scanf("%u", &t);
while(t--){ //Główna pętla kolejne testy
unsigned int n;
bool isThatMajor = false;
dimensions dim;
vector<dimensions> major;
scanf("%u", &n);
while(n--){//Wczytanie kolejnych wyników
scanf("%u", &dim.minW);
scanf("%u", &dim.maxW);
scanf("%u", &dim.minH);
scanf("%u", &dim.maxH);
if(major.size()){
vector<dimensions>::iterator it = major.begin();
vector<dimensions>::iterator end = major.end();
for(; it != end; it++){
if(isMajor(dim, *it)){
it = major.erase(it);
isThatMajor = true;
}else if(!isMajor(*it, dim)){
isThatMajor = true;
}
}
}else{
isThatMajor = true;
}
if(isThatMajor){
major.push_back(dim);
isThatMajor = false;
}
}
if(major.size() == 1){
printf("TAK\n");
}else{
printf("NIE\n");
}
major.empty();
}
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 | #include <cstdio> #include <vector> typedef struct { unsigned int minW, maxW; unsigned int minH, maxH; }dimensions; bool isMajor(dimensions d1, dimensions d2){ return( (d1.minW <= d2.minW) && (d1.maxW >= d2.minW) && (d1.minH <= d2.minH) && (d1.maxH >= d2.maxH) )? true : false; } bool isEqual(dimensions d1, dimensions d2){ return( (d1.minW == d2.minW) && (d1.maxW == d2.minW) && (d1.minH == d2.minH) && (d1.maxH == d2.maxH) )? true : false; } using namespace std; int main(void){ unsigned int t; scanf("%u", &t); while(t--){ //Główna pętla kolejne testy unsigned int n; bool isThatMajor = false; dimensions dim; vector<dimensions> major; scanf("%u", &n); while(n--){//Wczytanie kolejnych wyników scanf("%u", &dim.minW); scanf("%u", &dim.maxW); scanf("%u", &dim.minH); scanf("%u", &dim.maxH); if(major.size()){ vector<dimensions>::iterator it = major.begin(); vector<dimensions>::iterator end = major.end(); for(; it != end; it++){ if(isMajor(dim, *it)){ it = major.erase(it); isThatMajor = true; }else if(!isMajor(*it, dim)){ isThatMajor = true; } } }else{ isThatMajor = true; } if(isThatMajor){ major.push_back(dim); isThatMajor = false; } } if(major.size() == 1){ printf("TAK\n"); }else{ printf("NIE\n"); } major.empty(); } return 0; } |
English