중심이 정수 간격으로 정렬 된 축 정렬 단위 사각형 요소로 나눈 2D 공간 영역을 가져옵니다. 모서리는 두 요소가 공유하는 경우 내부라고하며, 그렇지 않으면 외부 모서리입니다.
당신의 목표는로 알려진 각 요소의 중심에서 시작하여 외부 가장자리에 도달하기 위해 통과해야 이웃 요소의 최소 수를 찾을 수 있습니다 traversal distance
, 또는 distance
짧은합니다. 모서리 만 통과 할 수 있습니다 (예 : 코너 절단 / 대각선 이동). "외부 요소"(적어도 하나의 외부 모서리가있는 요소)는 외부 모서리 0
에 도달하기 위해 인접한 요소를 횡단해야하는 것으로 간주됩니다 .
입력
입력은 모든 요소 중심의 (x, y)를 나타내는 음이 아닌 정수 쌍 좌표의 목록입니다. 겹치는 요소가 없다고 가정합니다 (즉, x / y 쌍은 요소를 고유하게 식별합니다). 당신은 할 수 없는 요소 입력 순서에 대해 아무것도 가정합니다.
입력 원점을 임의의 위치 (예 : 0,0 또는 1,1 등)로 변환 할 수 있습니다.
모든 입력 요소가 연결되어 있다고 가정 할 수 있습니다. 즉, 위 규칙을 사용하여 한 요소에서 다른 요소로 이동할 수 있습니다. 이것이 2D 영역이 단순히 연결된다는 것을 의미하지는 않습니다. 내부에 구멍이있을 수 있습니다.
예 : 다음은 유효하지 않은 입력입니다.
0,0
2,0
오류 점검이 필요하지 않습니다.
입력은 모든 소스 (파일, stdio, 함수 매개 변수 등)에서 올 수 있습니다.
산출
출력은 각 요소를 식별하는 좌표 목록과 모서리에 도달하기 위해 통과 한 해당 정수 거리 여야합니다. 출력은 원하는 임의의 요소 순서 일 수 있습니다 (예 : 입력과 동일한 순서로 요소를 출력 할 필요는 없음).
출력은 임의의 소스 (파일, stdio, 함수 반환 값 등) 일 수 있습니다.
요소의 외부 거리와 요소의 좌표를 일치시키는 모든 출력은 괜찮습니다. 예를 들어 다음은 모두 괜찮습니다.
x,y: distance
...
[((x,y), distance), ...]
[(x,y,distance), ...]
예
텍스트 예제 입력은 x,y
한 줄에 하나의 요소 가있는 형식입니다 . 이를 편리한 입력 형식으로 재구성 할 수 있습니다 (입력 형식 규칙 참조).
텍스트 예제 출력은 x,y: distance
한 줄에 하나의 요소 가있는 형식입니다 . 다시, 이것을 편리한 출력 형식으로 재구성 할 수 있습니다 (출력 형식 규칙 참조).
그래픽 수치의 왼쪽 아래 경계는 (0,0)이며, 내부 숫자는 외부 가장자리에 도달하기 위해 이동 한 예상 최소 거리를 나타냅니다. 이 수치는 순전히 설명을위한 것입니다. 당신의 프로그램은 이것을 출력 할 필요가 없습니다.
실시 예 1
입력:
1,0
3,0
0,1
1,2
1,1
2,1
4,3
3,1
2,2
2,3
3,2
3,3
산출:
1,0: 0
3,0: 0
0,1: 0
1,2: 0
1,1: 1
2,1: 0
4,3: 0
3,1: 0
2,2: 1
2,3: 0
3,2: 0
3,3: 0
그래픽 표현 :
실시 예 2
입력:
4,0
1,1
3,1
4,1
5,1
6,1
0,2
1,2
2,2
3,2
4,2
5,2
6,2
7,2
1,3
2,3
3,3
4,3
5,3
6,3
7,3
8,3
2,4
3,4
4,4
5,4
6,4
3,5
4,5
5,5
산출:
4,0: 0
1,1: 0
3,1: 0
4,1: 1
5,1: 0
6,1: 0
0,2: 0
1,2: 1
2,2: 0
3,2: 1
4,2: 2
5,2: 1
6,2: 1
7,2: 0
1,3: 0
2,3: 1
3,3: 2
4,3: 2
5,3: 2
6,3: 1
7,3: 0
8,3: 0
2,4: 0
3,4: 1
4,4: 1
5,4: 1
6,4: 0
3,5: 0
4,5: 0
5,5: 0
그래픽 표현 :
실시 예 3
입력:
4,0
4,1
1,2
3,2
4,2
5,2
6,2
8,2
0,3
1,3
2,3
3,3
4,3
5,3
6,3
7,3
8,3
9,3
1,4
2,4
3,4
4,4
5,4
6,4
7,4
8,4
9,4
2,5
3,5
4,5
5,5
6,5
9,5
10,5
11,5
3,6
4,6
5,6
9,6
10,6
11,6
6,7
7,7
8,7
9,7
10,7
11,7
산출:
4,0: 0
4,1: 0
1,2: 0
3,2: 0
4,2: 1
5,2: 0
6,2: 0
8,2: 0
0,3: 0
1,3: 1
2,3: 0
3,3: 1
4,3: 2
5,3: 1
6,3: 1
7,3: 0
8,3: 1
9,3: 0
1,4: 0
2,4: 1
3,4: 2
4,4: 2
5,4: 2
6,4: 1
7,4: 0
8,4: 0
9,4: 0
2,5: 0
3,5: 1
4,5: 1
5,5: 1
6,5: 0
9,5: 0
10,5: 0
11,5: 0
3,6: 0
4,6: 0
5,6: 0
9,6: 0
10,6: 1
11,6: 0
6,7: 0
7,7: 0
8,7: 0
9,7: 0
10,7: 0
11,7: 0
그래픽 표현 :
채점
이것은 코드 골프입니다. 바이트 단위의 짧은 코드가 이깁니다. 표준 허점이 적용됩니다. 이 문제를 해결하기 위해 특별히 설계된 것 이외의 모든 내장 기능이 허용됩니다.