몰 매니아

시간 제한1초메모리 제한128 MB

요약
경계 격자점으로 주어진 서로 겹치지 않는 두 폴리오미노 쇼핑몰 사이에서, 한쪽과 다른 쪽의 임의 교차점을 잇는 격자 위 맨해튼 최단 보행 거리를 구한다.
난이도

보통10점 중 7점

유형
기하, BFS, 구현, 그래프
정답자
아직 제출이 없습니다

문제

워털루(Waterloo)에는 거대한 쇼핑몰이 두 개 있고, 각 쇼핑몰은 여러 개의 도시 블록을 차지한다. Kim과 Pat은 쇼핑몰 안에서 걷고 쇼핑하는 것은 좋아하지만, 한 쇼핑몰에서 다른 쇼핑몰로 건너가는 걷기는 쇼핑이라는 본래 목적에 직접 도움이 되지 않으므로 싫어한다. 그래서 두 쇼핑몰 사이를 건너가는 최소 거리를 알고 싶어 한다.

각 도시 블록은 도로(street)와 대로(avenue)로 둘러싸인 한 변의 길이가 1인 정사각형이다. 도로는 동서 방향으로, 대로는 남북 방향으로 뻗어 있으며, 둘 다 00부터 20002000까지의 연속된 정수로 번호가 매겨진다. 번호가 작은 대로일수록 서쪽에, 번호가 작은 도로일수록 남쪽에 있다. 도로와 대로의 폭은 매우 좁으므로 두께가 00이라고 가정한다.

각 쇼핑몰은 서로 이어진 완전한 도시 블록들의 집합이다. 여기서 "이어져 있다"는 것은, 쇼핑몰에 속한 임의의 두 블록이 변을 맞대고 있는 블록들의 연속으로 연결됨을 뜻한다. 두 쇼핑몰은 서로 겹치지 않으며 어떤 빈 블록도 둘러싸지 않는다. 즉, 어느 쇼핑몰에도 속하지 않는 블록들 역시 서로 이어져 있다.

Kim과 Pat은 항상 도로와 대로를 따라 걷기 때문에, 두 교차점 (a1,s1)(a_1, s_1)과 (a2,s2)(a_2, s_2) 사이의 이동 거리는 ∣a1−a2∣+∣s1−s2∣|a_1 - a_2| + |s_1 - s_2|이다.

입력

입력에는 여러 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 두 쇼핑몰의 정보로 이루어진다.

한 쇼핑몰의 정보는 먼저 정수 p≥4p \ge 4(쇼핑몰의 둘레)로 시작하고, 이어서 pp개의 좌표쌍 (a,s)(a, s)가 (한 줄 또는 여러 줄에 걸쳐) 주어진다. 이 좌표쌍들은 쇼핑몰 경계 위에 있는 대로–도로 교차점들의 좌표이며, 시계 방향 순서로 나열된다. (연속해서 나열된 교차점은 서로 한 칸 떨어져 있으므로, pp개의 좌표쌍은 곧 경계선 위의 모든 격자점이다.)

한 테스트 케이스의 두 쇼핑몰 정보는 차례대로 주어진다. 마지막 테스트 케이스 다음에는 00 하나만 있는 줄이 온다.

출력

각 테스트 케이스마다, 두 쇼핑몰 사이를 도로와 대로를 따라 이동할 때의 최소 거리 dd를 정수 하나로 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    4
    0 0 0 1 1 1 1 0
    6
    4 3 4 2 3 2
    2 2 2 3
    3 3
    0
    
    예상 출력
    2