이 과제에서는 두 개의 겹치는 사각형이 제공되며, 하나를 다른 사각형에서 제거하여 만든 사각형을 계산해야합니다.
예를 들어, 검은 색 사각형에서 빨간색 사각형을 제거하는 경우 :
다음 두 사각형 세트 중 하나로 끝납니다.
또한 다음을 처리해야합니다.
더 명확하게 :
- A와 B의 두 사각형의 좌표를 입력합니다.
- B를 사용하지 않고 A의 모든 영역을 덮는 가장 겹치지 않는 사각형을 출력해야합니다. 가능한 모든 덮개가 허용됩니다.
- 직사각형 좌표는 4 개의 정수로 전달됩니다. 두 쌍 (두 모퉁이 점을 나타냄)으로 전달하거나 4 개의 정수로 구성된 튜플 / 목록으로 전달할 수 있습니다. 입력과 출력이 일관되어야합니다.
- A와 B가 반드시 겹치거나 닿을 필요는 없으며 각각 1 이상의 면적을 갖습니다
테스트 사례 :
[(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
이것은 code-golf 이므로 가능한 한 코드를 짧게 만드십시오!
{(x1, y1), (x2, y2)}
보유 x1 < x2
하고 y1 < y2
?