| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 246 | 48 | 22 | 12.360% |
크기 $N \times N$의 숨겨진 배열 $A$가 있다. 배열 $A$의 원소는 1ドル$부터 $N^2$사이의 서로 다른 정수로 이루어져 있다.
다음 조건을 만족하는 $(x,y)$를 극대라 한다.
당신은 배열 $A$에서 극대를 찾아야 한다.
답을 찾기 위해, 당신은 채점 시스템에 두 종류의 연산을 최대 27ドル$회 할 수 있다:
V $i$ $j$ $k$: $\max(A_{i,j}, A_{i+1,j}, \ldots, A_{i+k-1,j})$의 값을 묻는다.H $i$ $j$ $k$: $\max(A_{i,j}, A_{i,j+1}, \ldots, A_{i,j+k-1})$의 값을 묻는다.극대 $(x,y)$를 찾아보자. 만약 그러한 답이 여러 가지 있다면, 아무 답이나 찾아보자.
첫째 줄에 $N$이 주어진다. (2ドル \leq N \leq 2,000円$)
이후 당신과 채점 시스템과의 인터랙션이 진행된다.
당신은 표준 출력에 다음 연산을 각 줄에 출력하는 것으로, 채점 시스템과 인터랙션할 수 있다. 각 토큰은 공백으로 구분하며, 각 연산의 끝에 개행문자를 출력하여야 한다.
당신은 채점 시스템에게 V연산과 H연산을 총합하여 최대 27ドル$회 할 수 있다.
V $i$ $j$ $k$:
H $i$ $j$ $k$:
만약 극대 점 $(x,y)$을 알아냈다면 다음 연산을 통해 답을 제출할 수 있다.
만약 연산이 잘못된 출력이거나 제한을 초과하였다면 당신은 -1을 다음 줄에 입력받으며 이 입력이 주어질 경우 프로그램을 즉시 종료해야 한다.
채점 시스템은 적응적이지 않다. 즉 처음에 배열 $A$는 정해져 있으며 상호작용 도중에 $A$를 바꾸지 않는다.
각 연산 이후에는 표준 출력 버퍼를 비워야 한다.
각 언어별로 표준 출력 버퍼를 비우는 방법은 다음과 같다. 기타 언어의 경우, 언어의 레퍼런스 페이지를 참조하여라.
fflush(stdout)std::cout << std::flushSystem.out.flush()sys.stdout.flush()5 1 24 24
H 1 3 1 V 2 2 3 H 3 2 1 ! 3 2
Camp > 숭고한 연합 Algorithm Camp > 2025 숭고한 연합 알고리즘 경진대회 > Div. 1 J번