극대 찾기

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

요약
숨겨진 N×N 순열에서 세로·가로 구간 최댓값 질의를 최대 27번 사용해 극대점 하나를 찾는다.
난이도

어려움10점 중 8점

유형
이분 탐색, 분할 정복, 행렬
정답자
아직 제출이 없습니다

문제

크기 N×NN \times N의 숨겨진 배열 AA가 있다. 배열 AA의 원소는 11부터 N2N^2사이의 서로 다른 정수로 이루어져 있다.

다음 조건을 만족하는 (x,y)(x,y)를 극대라 한다.

  • x>1x>1인 경우, A_x,y>A_x−1,yA\_{x,y} > A\_{x-1,y}를 만족한다.
  • x\<Nx\<N인 경우, A_x,y>A_x+1,yA\_{x,y} > A\_{x+1,y}를 만족한다.
  • y>1y>1인 경우, A_x,y>A_x,y−1A\_{x,y} > A\_{x,y-1}를 만족한다.
  • y\<Ny\<N인 경우, A_x,y>A_x,y+1A\_{x,y} > A\_{x,y+1}를 만족한다.

당신은 배열 AA에서 극대를 찾아야 한다.

답을 찾기 위해, 당신은 채점 시스템에 두 종류의 연산을 최대 2727회 할 수 있다:

  • V ii jj kk: max⁡(A_i,j,A_i+1,j,…,A_i+k−1,j)\max(A\_{i,j}, A\_{i+1,j}, \ldots, A\_{i+k-1,j})의 값을 묻는다.
  • H ii jj kk: max⁡(A_i,j,A_i,j+1,…,A_i,j+k−1)\max(A\_{i,j}, A\_{i,j+1}, \ldots, A\_{i,j+k-1})의 값을 묻는다.

극대 (x,y)(x,y)를 찾아보자. 만약 그러한 답이 여러 가지 있다면, 아무 답이나 찾아보자.

입력

첫째 줄에 NN이 주어진다. (2≤N≤2,0002 \leq N \leq 2\\,000)

이후 당신과 채점 시스템과의 인터랙션이 진행된다.

예제1

  1. 예제 1

    입력
    5
    
    1
    
    24
    
    24
    
    
    예상 출력
    
    H 1 3 1
    
    V 2 2 3
    
    H 3 2 1
    
    ! 3 2