Trong thử thách này, bạn được cung cấp hai hình chữ nhật chồng chéo và bạn cần tính toán các hình chữ nhật được tạo bằng cách xóa cái này khỏi cái kia.
Ví dụ: nếu bạn xóa hình chữ nhật màu đỏ khỏi hình đen:
Bạn kết thúc với một trong hai bộ hình chữ nhật sau:
Bạn cũng cần xử lý như sau:
Nói rõ hơn:
- Bạn sẽ nhập tọa độ của hai hình chữ nhật A và B.
- Bạn cần xuất ra một số hình chữ nhật không chồng lấp nhất bao phủ tất cả diện tích của A mà không có B. Mọi sự che phủ có thể được cho phép
- Tọa độ hình chữ nhật được truyền dưới dạng 4 số nguyên. Bạn có thể vượt qua chúng thành hai cặp (đại diện cho hai điểm góc) hoặc dưới dạng một bộ / danh sách gồm 4 số nguyên. Đầu vào và đầu ra của bạn cần phải nhất quán.
- A và B sẽ không nhất thiết phải chồng chéo hoặc chạm vào nhau và mỗi vùng sẽ có diện tích ít nhất là 1
Các trường hợp thử nghiệm:
[(0 0) (5 5)] [(3 4) (8 7)] -> [(0 0) (5 4)] [(0 4) (3 5)] # or [(0 0) (3 5)] [(3 0) (5 4)]
[(2 4) (10 11)] [(5 5) (6 6)] -> [(2 4) (10 5)] [(2 5) (5 6)] [(6 5) (10 6)] [(2 6) (10 11)] #Other sets of 4 rectangles are possible
[(3 3) (8 8)] [(0 1) (10 8)] -> #No rectangles should be output
[(0 0) (5 5)] [(1 1) (10 2)] -> [(0 0) (1 5)] [(1 0) (2 1)] [(2 0) (5 5)] #Other sets of 3 rectangles are possible
[(1 5) (7 8)] [(0 0) (1 10)] -> [(1 5) (7 8)] #Only possible output
[(4 1) (10 9)] [(2 5) (20 7)] -> [(4 1) (10 5)] [(4 7) (10 9)] #Only possible output
[(1 1) (8 8)] [(0 6) (9 9)] -> [(1 1) (8 6)] #Only possible output
Đây là một môn đánh gôn , vì vậy hãy làm cho mã của bạn càng ngắn càng tốt!
{(x1, y1), (x2, y2)}
cho giữ x1 < x2
và y1 < y2
?