#include<iostream> using namespace std; static bool prawidlowe = true; int main() { cin.sync_with_stdio(false); //fstream plik; //plik.open("Nowy dokument tekstowy (2)"); short t; cin >> t; unsigned n; unsigned long w; while (t != 0) { cin >> n >> w; unsigned long** wymiarypoczatkowe = new unsigned long*[n]; unsigned long** wymiarydocelowe = new unsigned long*[n]; for (int i = 0; i < n; i++) { wymiarypoczatkowe[i] = new unsigned long[4]; } for (int i = 0; i < n; i++) { wymiarydocelowe[i] = new unsigned long[4]; } for (int i = 0; i < n; i++) { cin >> wymiarypoczatkowe[i][0] >> wymiarypoczatkowe[i][1] >> wymiarypoczatkowe[i][2] >> wymiarypoczatkowe[i][3]; } for (int i = 0; i < n; i++) { cin>> wymiarydocelowe[i][0] >> wymiarydocelowe[i][1] >> wymiarydocelowe[i][2] >> wymiarydocelowe[i][3]; } for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (wymiarydocelowe[i][0]> wymiarydocelowe[j][0] && wymiarydocelowe[i][1]> wymiarydocelowe[j][1] && wymiarydocelowe[i][2]< wymiarydocelowe[j][2] && wymiarydocelowe[i][3]< wymiarydocelowe[j][3]) { cout << "NIE" << endl; prawidlowe = false; } } } for (int i = 0; i < n; i++) { if (wymiarypoczatkowe[i][0] != wymiarydocelowe[i][0] && prawidlowe) { if (wymiarydocelowe[i][0] >wymiarypoczatkowe[i][0]) { for (int k = 0; k < n; k++) { if (wymiarypoczatkowe[i][2] <= wymiarypoczatkowe[k][0] && wymiarypoczatkowe[k][2] <= wymiarydocelowe[i][0] && prawidlowe&&k != i) { if ((wymiarypoczatkowe[k][3] - wymiarypoczatkowe[k][1] + wymiarydocelowe[i][3] - wymiarydocelowe[i][1])>w) { cout << "NIE" << endl; prawidlowe = false; } } } } else { for (int k = 0; k < n; k++) { if (wymiarydocelowe[i][0] <= wymiarypoczatkowe[k][2] && wymiarypoczatkowe[i][2] >= wymiarypoczatkowe[k][0] && k != i&&prawidlowe) { if ((wymiarypoczatkowe[k][3] - wymiarypoczatkowe[k][1] + wymiarydocelowe[i][3] - wymiarydocelowe[i][1])>w&&prawidlowe) { cout << "NIE" << endl; prawidlowe = false; } } } } } } if (prawidlowe) { cout << "TAK" << endl; } t--; } 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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | #include<iostream> using namespace std; static bool prawidlowe = true; int main() { cin.sync_with_stdio(false); //fstream plik; //plik.open("Nowy dokument tekstowy (2)"); short t; cin >> t; unsigned n; unsigned long w; while (t != 0) { cin >> n >> w; unsigned long** wymiarypoczatkowe = new unsigned long*[n]; unsigned long** wymiarydocelowe = new unsigned long*[n]; for (int i = 0; i < n; i++) { wymiarypoczatkowe[i] = new unsigned long[4]; } for (int i = 0; i < n; i++) { wymiarydocelowe[i] = new unsigned long[4]; } for (int i = 0; i < n; i++) { cin >> wymiarypoczatkowe[i][0] >> wymiarypoczatkowe[i][1] >> wymiarypoczatkowe[i][2] >> wymiarypoczatkowe[i][3]; } for (int i = 0; i < n; i++) { cin>> wymiarydocelowe[i][0] >> wymiarydocelowe[i][1] >> wymiarydocelowe[i][2] >> wymiarydocelowe[i][3]; } for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (wymiarydocelowe[i][0]> wymiarydocelowe[j][0] && wymiarydocelowe[i][1]> wymiarydocelowe[j][1] && wymiarydocelowe[i][2]< wymiarydocelowe[j][2] && wymiarydocelowe[i][3]< wymiarydocelowe[j][3]) { cout << "NIE" << endl; prawidlowe = false; } } } for (int i = 0; i < n; i++) { if (wymiarypoczatkowe[i][0] != wymiarydocelowe[i][0] && prawidlowe) { if (wymiarydocelowe[i][0] >wymiarypoczatkowe[i][0]) { for (int k = 0; k < n; k++) { if (wymiarypoczatkowe[i][2] <= wymiarypoczatkowe[k][0] && wymiarypoczatkowe[k][2] <= wymiarydocelowe[i][0] && prawidlowe&&k != i) { if ((wymiarypoczatkowe[k][3] - wymiarypoczatkowe[k][1] + wymiarydocelowe[i][3] - wymiarydocelowe[i][1])>w) { cout << "NIE" << endl; prawidlowe = false; } } } } else { for (int k = 0; k < n; k++) { if (wymiarydocelowe[i][0] <= wymiarypoczatkowe[k][2] && wymiarypoczatkowe[i][2] >= wymiarypoczatkowe[k][0] && k != i&&prawidlowe) { if ((wymiarypoczatkowe[k][3] - wymiarypoczatkowe[k][1] + wymiarydocelowe[i][3] - wymiarydocelowe[i][1])>w&&prawidlowe) { cout << "NIE" << endl; prawidlowe = false; } } } } } } if (prawidlowe) { cout << "TAK" << endl; } t--; } return 0; } |