#include <iostream>
using namespace std;
struct Size {
unsigned long w1,w2;
unsigned long h1,h2;
};
bool areJoined(unsigned int x1, unsigned int x2, unsigned int y1, unsigned int y2){
if(x1 <= y1 && x2 >= y2){
return true;
}
return false;
}
bool check(Size* rows, unsigned int n, unsigned int min_w, unsigned int max_w, unsigned int min_h, unsigned int max_h){
for(unsigned int i = 0; i < n; i++){
if(areJoined(rows[i].w1, rows[i].w2, min_w, max_w) &&
areJoined(rows[i].h1, rows[i].h2, min_h, max_h)){
return true;
}
}
return false;
}
int main(){
short t;
Size* rows;
cin >> t;
for(short i = 0; i < t; i++){
unsigned int n;
unsigned int min_w, max_w;
unsigned int min_h, max_h;
cin >> n;
rows = new Size[n];
for(unsigned int j = 0; j < n; j++){
cin >> rows[j].w1;
cin >> rows[j].w2;
cin >> rows[j].h1;
cin >> rows[j].h2;
if(rows[j].w1 < min_w || j == 0){
min_w = rows[j].w1;
}
if(rows[j].w2 > max_w || j == 0){
max_w = rows[j].w2;
}
if(rows[j].h1 < min_h || j == 0){
min_h = rows[j].h1;
}
if(rows[j].h2 > max_h || j == 0){
max_h = rows[j].h2;
}
}
if(check(rows, n, min_w, max_w, min_h, max_h)){
cout << "TAK" << endl;
}
else {
cout << "NIE" << endl;
}
delete [] rows;
}
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 | #include <iostream> using namespace std; struct Size { unsigned long w1,w2; unsigned long h1,h2; }; bool areJoined(unsigned int x1, unsigned int x2, unsigned int y1, unsigned int y2){ if(x1 <= y1 && x2 >= y2){ return true; } return false; } bool check(Size* rows, unsigned int n, unsigned int min_w, unsigned int max_w, unsigned int min_h, unsigned int max_h){ for(unsigned int i = 0; i < n; i++){ if(areJoined(rows[i].w1, rows[i].w2, min_w, max_w) && areJoined(rows[i].h1, rows[i].h2, min_h, max_h)){ return true; } } return false; } int main(){ short t; Size* rows; cin >> t; for(short i = 0; i < t; i++){ unsigned int n; unsigned int min_w, max_w; unsigned int min_h, max_h; cin >> n; rows = new Size[n]; for(unsigned int j = 0; j < n; j++){ cin >> rows[j].w1; cin >> rows[j].w2; cin >> rows[j].h1; cin >> rows[j].h2; if(rows[j].w1 < min_w || j == 0){ min_w = rows[j].w1; } if(rows[j].w2 > max_w || j == 0){ max_w = rows[j].w2; } if(rows[j].h1 < min_h || j == 0){ min_h = rows[j].h1; } if(rows[j].h2 > max_h || j == 0){ max_h = rows[j].h2; } } if(check(rows, n, min_w, max_w, min_h, max_h)){ cout << "TAK" << endl; } else { cout << "NIE" << endl; } delete [] rows; } return 0; } |
English