P14086 [ICPC 2023 Seoul R] Black Box
题目描述
下面是一个类似于 $\texttt{Python}$ 的伪代码,实现了名为 $\texttt{BlackBox()}$ 的函数。该函数接收一个正整数列表,并以特定方式对该列表中的整数进行混洗,然后将结果作为列表返回。
在伪代码中使用了以下三种列表方法:对于列表 `L`,`len(L)` 返回 `L` 的元素个数,`L.append(x)` 将元素 $x$ 添加到 `L` 的末尾,`L.pop(idx)` 则移除并返回 `L` 中下标为 $idx$ 的元素。
给定一个正整数列表 $\texttt Z$,请编写程序重构出一个列表 $\texttt I$,使得满足 $\texttt{Z = BlackBox(I)}$。
```
function BlackBox( Banana ):
if len( Banana ) = 2 ) :
Kiwi = Banana[ Mango ]
Apple.append( Kiwi )
Banana.pop( Mango )
Papaya = Papaya - 1
Mango = ( Kiwi + Mango - 1 ) % Papaya
# while 循环结束
Apple.append( Banana[ 0 ] )
Pear = len( Apple ) - 1
Orange = Apple[ Pear ]
Lime = Apple[ 0 ]
Coconut = Orange % Pear
Melon = Apple[ Coconut ]
Apple[ 0 ] = Melon
Apple[ Coconut ] = Lime
return ( Apple )
# BlackBox 函数结束
```
输入格式
你的程序需要从标准输入读取数据。第一行包含一个正整数 $n$,表示列表 $\texttt Z$ 的元素个数,其中 $5 \le n \le 200,000$。接下来的 $n$ 行,每行包含列表 $\texttt Z$ 的一个正整数,范围为 $1$ 到 $100,000$(包含 $1$ 和 $100,000$)。第 $i$ 行表示 $\texttt Z$ 的第 $i$ 个整数。
输出格式
你的程序需要向标准输出输出数据。输出列表 $\texttt I$ 的 $n$ 个整数,使得 $\texttt{Z = BlackBox(I)}$,每行一个;第 $i$ 行输出 $\texttt I$ 的第 $i$ 个整数。
说明/提示
由 ChatGPT 5 翻译