Logo
(追記) (追記ここまで)

33986번 - 리버스 정렬 스페셜 저지

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB272494821.333%

문제

길이 $N$의 순열 $P$가 있다. 당신은 한 연산에서 다음과 같은 연산을 최대 10ドル,000円$회 할 수 있다.

  • 1ドル \leq l \leq r \leq N$인 $l$과 $r$을 고른다. 그 후 $P$에서 $l$부터 $r$까지의 부분 수열의 순서를 반대로 뒤집는다. 이 연산의 비용은 $(r-l) \operatorname{mod} 2$ 이다.

예를 들어 $[2,1,4,3,5]$에서 $l=2, r=4$인 연산을 사용한다면, $[2,\underline{3},\underline{4},\underline{1},5]$가 된다.

연산을 최대 10ドル,000円$번만 하여 순열 $P$를 오름차순으로 정렬하는 방법을 구해보자. 가능한 방법이 여러 가지라면, 사용한 연산의 비용의 합이 최소인 방법을 구해보자.

입력

첫째 줄에 $N$이 주어진다. $(1 \leq N \leq 5,000円)$

둘째 줄에 $P_1, P_2, \cdots, P_N$가 공백으로 구분되어 주어진다.

출력

첫째 줄에 연산의 횟수 $Q$를 출력한다. $(0 \leq Q \leq 10,000円)$

다음 $Q$개의 줄에 $i$번째 연산 $l_i$와 $r_i$를 공백으로 구분하여 출력한다. $(1 \leq l_i \leq r_i \leq N)$

순열 $P$를 최소한의 비용으로 정렬할 수 있는 방법이 여러 가지라면, 아무 방법이나 출력한다.

제한

예제 입력 1

5
5 2 3 4 1

예제 출력 1

3
1 5
2 4
3 3

각 연산 이후 $P$는 다음과 같이 변화한다.

$[5, 2, 3, 4, 1] \rightarrow [\underline{1}, \underline{4}, \underline{3}, \underline{2}, \underline{5}] \rightarrow [1, \underline{2}, \underline{3}, \underline{4}, 5] \rightarrow [1, 2, \underline{3}, 4, 5]$

연산의 횟수를 최소화 할 필요는 없음에 유의하라.

예제 입력 2

6
1 3 2 5 4 6

예제 출력 2

3
2 5
2 4
3 5

$[1, 3, 2, 5, 4, 6] \rightarrow [1, \underline{4}, \underline{5}, \underline{2}, \underline{3}, 6] \rightarrow [1, \underline{2}, \underline{5}, \underline{4}, 3, 6]\rightarrow [1, 2, \underline{3}, \underline{4}, \underline{5}, 6]$

예제 입력 3

6
6 5 4 3 2 1

예제 출력 3

1
1 6

노트

길이 $N$의 순열은 1ドル$부터 $N$까지의 수가 정확히 한 번 등장하는 수열을 말한다.

예를 들어, $[3,5,1,2,4]$와 $[1,3,2]$는 순열이지만, $[2,3,2]$또는 $[0]$은 순열이 아니다.

두 정수 $a$와 $b$에 대해 $a \operatorname{mod} b$는 $a$를 $b$로 나눈 나머지를 의미한다.

연산을 10ドル,000円$번 이하로 하여 주어진 순열을 항상 정렬할 수 있음을 보일 수 있다.

출처

University > 한양대학교 > 2025 한양대학교 ALOHA 벚꽃컵 > Div. 1 C번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /