luogu#P12092. [NERC2024] Adrenaline Rush

[NERC2024] Adrenaline Rush

题目描述

Alice's friend is a big fan of the Adrenaline Rush racing competition and always strives to attend every race. However, this time, Alice is the one watching the race. To ensure her friend does not miss any important details, Alice decides to take notes on everything that happens on the track.

The first thing Alice notices before the race begins is the numbering of the cars. All the cars line up in front of the starting line in a specific order. The car closest to the line is numbered 11, the second car is numbered 22, and so on, up to the last car, which is numbered nn. How convenient! --- Alice thought.

The race begins with the countdown: Three! Two! One! Go!. Alice observes that the cars start in their original order. However, as the race progresses, their order changes. She records whenever one car overtakes another, essentially swapping places with it on the track.

During the race, Alice notices something curious: no car overtakes another more than once. In other words, for any two cars xx and yy, there are at most two overtakes between them during the race: xx overtakes yy and/or yy overtakes xx.

At the end of the race, Alice carefully writes down the final order of the cars c1,c2,,cnc_1, c_2, \ldots, c_n, where c1c_1 represents the winner of the race.

Alice's friend, however, is only interested in the final ranking and discards all of Alice's notes except for the final ordering. As Alice is quite curious, she wonders: $\textit{What is the longest possible sequence of overtakes she could have observed during the race?}$ Your task is to help Alice answer this question.

输入格式

The first line of the input contains a single integer n  (1n1000)n\;(1 \le n \le 1000) --- the number of cars in the race.

The second line contains a permutation $c_1, c_2, \ldots, c_n\;(1 \le c_i \le n, c_i \ne c_j)$ --- the final order of the cars.

输出格式

The first line of the output should contain a single integer mm --- the maximum possible number of overtakes that can occur during the race.

Each of the next mm lines should contain two integers xx and yy (1x,yn1 \le x, y \le n, xyx \ne y) representing an overtake event, where car xx overtakes car yy. This means that car xx was directly behind car yy and overtakes it. The overtakes must be listed in the order they occurred during the race.

After all mm overtakes have occurred, the cars must arrive at the finish line in the order c1,c2,,cnc_1, c_2, \ldots, c_n. Note that any car xx should not overtake another car yy more than once.

If there are multiple possible longest sequences of overtakes, output any of them.

3
2 3 1
4
2 1
3 1
3 2
2 3
1
1
0
2
1 2
2
2 1
1 2