입력
이 과제에 대한 귀하의 입력은 정수 쌍의 목록입니다. 이들은 평면에서 단위 사각형의 남서쪽 모서리를 나타내고 목록은 평면의 하위 집합으로 결합을 나타냅니다. 예를 들어, 목록
[(0,0),(1,0),(0,1),(1,1),(2,1),(1,2),(2,2)]
이 그림에서 붉은 색 세트를 나타냅니다.
산출
Yor 출력은 평면의 사각형 부분 집합을 나타내는 정수 4 배의 목록입니다. 보다 명확하게, 4 중 은 남서쪽 모서리가에있는 (x,y,w,h)
너비 w > 0
와 높이 h > 0
의 사각형 을 나타 (x,y)
냅니다. 각 사각형은 일부 사각형의 하위 집합이고 각 사각형은 해당 영역의 하위 집합이며 두 사각형은 해당 경계에서만 겹칠 수 있다는 점에서 사각형은 입력 영역을 정확하게 덮어야합니다. 사소한 해결책을 막기 위해, 덮개는 더 큰 사각형으로 병합 될 수있는 두 개의 사각형을 포함해서는 안됩니다.
예를 들어, 목록
[(0,0,2,1),(0,1,3,1),(1,2,2,1)]
법적 취재를 나타냅니다
위의 영역의
[(0,0,2,2),(2,1,1,1),(1,2,1,1),(2,2,1,1)]
인접한 1x1 사각형을 병합 할 수 있으므로 불법입니다.
규칙
당신은 전체 프로그램이나 기능을 제공 할 수 있습니다. 입력 및 출력의 정확한 형식은 이유 내에서 중요하지 않습니다. 가장 짧은 바이트 수가 이기고 표준 허점은 허용되지 않습니다. 알고리즘에 대한 설명과 일부 출력 예를 제공하는 것이 좋습니다.
테스트 사례
U 자형 영역 :
[(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(2,0),(2,1),(3,0),(3,1),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5)]
큰 삼각형 :
[(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(0,9),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(3,0),(3,1),(3,2),(3,3),(3,4),(3,5),(3,6),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(5,0),(5,1),(5,2),(5,3),(5,4),(6,0),(6,1),(6,2),(6,3),(7,0),(7,1),(7,2),(8,0),(8,1),(9,0)]
구멍이있는 사각형 :
[(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9),(3,0),(3,1),(3,2),(3,4),(3,5),(3,6),(3,7),(3,8),(3,9),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(4,6),(4,7),(4,8),(4,9),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5),(5,7),(5,8),(5,9),(6,1),(6,2),(6,3),(6,5),(6,6),(6,7),(6,8),(6,9),(7,0),(7,1),(7,2),(7,3),(7,4),(7,5),(7,6),(7,7),(7,8),(7,9),(8,0),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(9,0),(9,1),(9,2),(9,3),(9,4),(9,5),(9,6),(9,7),(9,8),(9,9)]
연결이 끊어진 지역 :
[(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(1,0),(1,1),(1,2),(1,3),(1,4),(1,6),(1,7),(1,8),(1,9),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9),(4,0),(4,1),(4,2),(4,4),(4,5),(4,6),(4,7),(4,8),(4,9),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5),(5,6),(5,7),(5,8),(5,9),(6,0),(6,1),(6,2),(6,4),(6,5),(6,6),(6,7),(6,8),(6,9),(8,0),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(9,0),(9,1),(9,2),(9,3),(9,7),(9,8),(9,9),(10,0),(10,1),(10,2),(10,3),(10,4),(10,5),(10,6),(10,7),(10,8),(10,9)]
검증기
사용 이 솔루션을 확인하기 위해 파이썬 2 프로그램을. STDIN에서 튜플 목록 (입력)과 사중 목록 (출력)을 쉼표로 구분하여 가져옵니다.
또한 이 Python 2 프로그램을 작성 하여 그림을 생성하고 사용할 수도 있습니다. STDIN에서 튜플 또는 쿼드 러플 목록을 가져 와서라는 파일을 생성합니다 out.png
. PIL 라이브러리가 필요합니다. 원하는 경우 격자 셀의 크기와 거드 선의 너비도 변경할 수 있습니다.