#include <cstdio>
int main(){
int k;
scanf("%d", &k);
while(k > 0){
k--;
int wysokosc;
int ilosc_samochodow;
scanf("%d", &ilosc_samochodow);
scanf("%d", &wysokosc);
int x1[ilosc_samochodow];
int y1[ilosc_samochodow];
int x2[ilosc_samochodow];
int y2[ilosc_samochodow];
for(int i = 0; i < ilosc_samochodow; i++){
//printf("%s\n", "pierwsza petla");
scanf("%d", &x1[i]);
scanf("%d", &y1[i]);
scanf("%d", &x2[i]);
scanf("%d", &y2[i]);
}
int x1_tmp, y1_tmp, x2_tmp, y2_tmp;
int i = 0;
bool flaga = true;
while(/*flaga == true && */i < ilosc_samochodow){
//printf("%s\n", "druga petla");
//for(int i = 0; i < ilosc_samochodow; i++){
scanf("%d", &x1_tmp);
scanf("%d", &y1_tmp);
scanf("%d", &x2_tmp);
scanf("%d", &y2_tmp);
if(x1_tmp == x1[i] && y1_tmp == y1[i] && x2_tmp == x2[i] && y2_tmp == y2[i]){
i++;
continue;
}
if(x1[i] < x1_tmp){//przenosimy figore na prawo
int j = 0;
while(flaga == true && j < ilosc_samochodow){
//for(int j = i+1; j < ilosc_samochodow; j++){
if(x1[j] >= x2[i] && x2[j] <= x2_tmp && i != j){//znaczy ze sprawdzana figura należy do przedzialu - trzeba spr wysokosci
if(wysokosc - (y2[j] - y1[j]) == 0 || wysokosc - (y2[j] - y1[j]) - (y2[i] - y1[i]) < 0){//nie mina sie
flaga = false;
}
}
j++;
}
}
else{//przenosimy figore na lewo
int j = 0;
while(flaga == true && j < ilosc_samochodow){
if(x1[j] >= x1_tmp && x2[j] <= x1[i] && i != j){//znaczy ze sprawdzana figura należy do przedzialu - trzeba spr wysokosci
if(wysokosc - (y2[j] - y1[j]) == 0 ||wysokosc - (y2[j] - y1[j]) - (y2[i] - y1[i]) < 0){//nie mina sie
flaga = false;
}
}
j++;
}
}
i++;
}
if(flaga == true)
printf("%s\n", "TAK");
else
printf("%s\n", "NIE");
}
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 | #include <cstdio> int main(){ int k; scanf("%d", &k); while(k > 0){ k--; int wysokosc; int ilosc_samochodow; scanf("%d", &ilosc_samochodow); scanf("%d", &wysokosc); int x1[ilosc_samochodow]; int y1[ilosc_samochodow]; int x2[ilosc_samochodow]; int y2[ilosc_samochodow]; for(int i = 0; i < ilosc_samochodow; i++){ //printf("%s\n", "pierwsza petla"); scanf("%d", &x1[i]); scanf("%d", &y1[i]); scanf("%d", &x2[i]); scanf("%d", &y2[i]); } int x1_tmp, y1_tmp, x2_tmp, y2_tmp; int i = 0; bool flaga = true; while(/*flaga == true && */i < ilosc_samochodow){ //printf("%s\n", "druga petla"); //for(int i = 0; i < ilosc_samochodow; i++){ scanf("%d", &x1_tmp); scanf("%d", &y1_tmp); scanf("%d", &x2_tmp); scanf("%d", &y2_tmp); if(x1_tmp == x1[i] && y1_tmp == y1[i] && x2_tmp == x2[i] && y2_tmp == y2[i]){ i++; continue; } if(x1[i] < x1_tmp){//przenosimy figore na prawo int j = 0; while(flaga == true && j < ilosc_samochodow){ //for(int j = i+1; j < ilosc_samochodow; j++){ if(x1[j] >= x2[i] && x2[j] <= x2_tmp && i != j){//znaczy ze sprawdzana figura należy do przedzialu - trzeba spr wysokosci if(wysokosc - (y2[j] - y1[j]) == 0 || wysokosc - (y2[j] - y1[j]) - (y2[i] - y1[i]) < 0){//nie mina sie flaga = false; } } j++; } } else{//przenosimy figore na lewo int j = 0; while(flaga == true && j < ilosc_samochodow){ if(x1[j] >= x1_tmp && x2[j] <= x1[i] && i != j){//znaczy ze sprawdzana figura należy do przedzialu - trzeba spr wysokosci if(wysokosc - (y2[j] - y1[j]) == 0 ||wysokosc - (y2[j] - y1[j]) - (y2[i] - y1[i]) < 0){//nie mina sie flaga = false; } } j++; } } i++; } if(flaga == true) printf("%s\n", "TAK"); else printf("%s\n", "NIE"); } return 0; } |
English