당신은 농부이고 당신의 양 떼가 탈출했습니다! 아뇨!
울타리를 만들어 양들을 반올림하십시오. 예산이 저렴한 농부는 가능한 한 적은 양의 울타리를 사용하고 싶습니다. 운 좋게도, 그들은 세상에서 가장 똑똑한 양이 아니며 탈출 한 후에도 귀찮게하지 않습니다.
직무
좌표 목록이 제공되면 양을 포함하는 데 필요한 최소 양의 펜스 세그먼트를 출력하십시오.
규칙
- 그들이 방황 할 수 없으면 양이 담겨있다 (울타리에 구멍이 없음).
- 울타리 한 블록에 모든 양을 담을 필요는 없습니다. 서로 독립된 여러 개의 차단 된 지역이있을 수 있습니다.
- 울타리 세그먼트는 기본 방향으로되어 있습니다.
- 각 좌표 튜플은 단일 양을 나타냅니다.
- 입력은 양의 정수 쌍 (
x>0&) 이어야y>0하지만 언어에 맞게 형식을 지정할 수 있습니다.- 즉 :
{{1,1},{2,1},{3,7}, .. }또는[1,2],[2,1],[3,7], ..
- 즉 :
- 울타리가있는 공간 안에 빈 공간이 있습니다.
- 좌표가 특정 순서로 입력되었다고 가정 할 수 없습니다.
예를 들어, 단일 양은 4울타리 세그먼트가 완전히 포함되어야합니다.
테스트 사례
[1,1]
4
[1,1],[1,2],[2,2]
8
[2,1],[3,1],[2,3],[1,1],[1,3],[3,2],[1,2],[3,3]
12
[1,1],[1,2],[2,2],[3,7],[4,9],[4,10],[4,11],[5,10]
22
[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9]
36
[1,1],[2,2],[3,3],[4,4],[6,6],[7,7],[8,8],[9,9]
32
[2,1],[8,3],[8,4]
10
노트
- 입력 좌표가 유효하다고 가정 할 수 있습니다.
- 이론적으로 알고리즘은 합리적으로 큰 정수 좌표 (언어의 최대 지원 값까지)에서 작동해야합니다.
- 전체 프로그램 또는 기능 답변은 괜찮습니다.
이것은 code-golf 이므로 바이트 단위의 최단 답변이 승리합니다!
@Phoenix Nope, 각
—
CzarMatt
x,y입력은 함께 있어야합니다. 좋은 생각이지만, 나는 그것을 스스로 생각하지 못했습니다.
좌표의 경계는 무엇입니까? 0과 음수가 가능합니까?
—
Aourd
놀랍게도 어렵다. 모든 경우를 처리하는 휴리스틱이 있다고 생각할 때마다 내가 놓친 것이 있습니다.
—
xnor
와우, 얼마나 도전적인가. 나는 나의 상실을 인정합니다. 05AB1E에서이 작업을 수행하십시오.
—
Magic Octopus Urn
{1,2,3,4},{5,6,7,8} -> {1,5},{2,6},{3,7},{4,8}