아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

소 구출

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

요약
행이 최대 100만 개인 삼각형 미로에서 시작 삼각형에서 출구까지의 최단 시간을 구하고, 같은 시간이면 행과 열이 가장 작은 출구를 고른다.
난이도

보통10점 중 7점

유형
그래프, 최단 경로, 수학, 기하
정답자
아직 제출이 없습니다

문제

베시가 NN개의 행으로 이루어진 삼각형 미로에 갇혔다 (1≤N≤1,000,0001 \le N \le 1{,}000{,}000). 미로의 ii번째 행에는 2i−12i-1개의 삼각형이 있다. 왼쪽부터 번호를 매겨 ii번째 행의 삼각형을 (i,1),(i,2),…,(i,2i−1)(i,1), (i,2), \dots, (i, 2i-1)로 부른다.

각 삼각형은 변을 공유하는 (보통 세 개의) 이웃 삼각형을 가지며, 베시는 현재 삼각형과 변을 공유하는 삼각형으로 이동할 수 있다. 예를 들어 삼각형 (3,3)(3,3)에서는 (3,2)(3,2), (3,4)(3,4), (4,4)(4,4)로 이동할 수 있다. 한 번 이동하는 데 정확히 11분이 걸린다.

(열 번호가 홀수인 삼각형은 위를 향하고, 짝수인 삼각형은 아래를 향한다. 위를 향하는 삼각형 (i,j)(i,j)는 (i,j−1)(i,j-1), (i,j+1)(i,j+1), (i+1,j+1)(i+1,j+1)과 인접하고, 아래를 향하는 삼각형 (i,j)(i,j)는 (i,j−1)(i,j-1), (i,j+1)(i,j+1), (i−1,j−1)(i-1,j-1)과 인접한다. 미로 밖의 이웃은 존재하지 않는다.)

베시는 삼각형 (Si,Sj)(S_i, S_j)에서 출발한다. 미로에는 MM개의 출구 삼각형이 있다 (1≤M≤10,0001 \le M \le 10{,}000). 이 중 어느 하나에 도달하면 탈출할 수 있으며, 출구 삼각형에 들어간 뒤 11분이 더 지나면 미로를 빠져나간다.

베시가 탈출하는 데 필요한 최소 시간을 TT분이라고 하자. 정확히 TT분 만에 탈출할 수 있는 출구가 여러 개라면, 베시가 사용해야 할 출구 하나를 출력한다. 이때 행 번호가 가장 작은 출구를 고르고, 그래도 같다면 열 번호가 가장 작은 출구를 고른다.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 NN과 MM
  • 둘째 줄: 공백으로 구분된 두 정수 SiS_i와 SjS_j (베시의 시작 삼각형)
  • 셋째 줄부터 M+2M+2번째 줄까지: i+2i+2번째 줄에는 출구 ii의 위치를 나타내는 두 정수 EiE_i와 EjE_j가 주어진다

출력

  • 첫째 줄: 선택한 출구의 위치를 나타내는 두 정수 OUTiOUT_i와 OUTjOUT_j
  • 둘째 줄: 최소 탈출 시간(분)을 나타내는 정수 TT

예제6

  1. 예제 1

    입력
    4 2
    2 1
    3 5
    4 4
    
    예상 출력
    4 4
    4
    
  2. 예제 2

    입력
    1 1
    1 1
    1 1
    
    예상 출력
    1 1
    1
    
  3. 예제 3

    입력
    3 2
    3 3
    3 5
    3 1
    
    예상 출력
    3 1
    3
    
  4. 예제 4

    입력
    5 2
    3 3
    5 7
    1 1
    
    예상 출력
    1 1
    5
    
  5. 예제 5

    입력
    3 2
    3 3
    1 1
    3 4
    
    예상 출력
    3 4
    2
    
  6. 예제 6

    입력
    4 2
    4 1
    4 7
    4 4
    
    예상 출력
    4 4
    4