#P14086. [ICPC 2023 Seoul R] Black Box

[ICPC 2023 Seoul R] Black Box

Description

下面是一个类似于 Python\texttt{Python} 的伪代码,实现了名为 BlackBox()\texttt{BlackBox()} 的函数。该函数接收一个正整数列表,并以特定方式对该列表中的整数进行混洗,然后将结果作为列表返回。

在伪代码中使用了以下三种列表方法:对于列表 Llen(L) 返回 L 的元素个数,L.append(x) 将元素 xx 添加到 L 的末尾,L.pop(idx) 则移除并返回 L 中下标为 idxidx 的元素。

给定一个正整数列表 Z\texttt Z,请编写程序重构出一个列表 I\texttt I,使得满足 Z = BlackBox(I)\texttt{Z = BlackBox(I)}

function BlackBox( Banana ):
  if len( Banana ) <= 4 :
    exit("Too small Banana")
  Apple = [] # [] 表示空列表
  Mango = 0
  Papaya = len( Banana )
  while( Papaya >= 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 函数结束

Input Format

你的程序需要从标准输入读取数据。第一行包含一个正整数 nn,表示列表 Z\texttt Z 的元素个数,其中 5n200,0005 \le n \le 200,000。接下来的 nn 行,每行包含列表 Z\texttt Z 的一个正整数,范围为 11100,000100,000(包含 11100,000100,000)。第 ii 行表示 Z\texttt Z 的第 ii 个整数。

Output Format

你的程序需要向标准输出输出数据。输出列表 I\texttt Inn 个整数,使得 Z = BlackBox(I)\texttt{Z = BlackBox(I)},每行一个;第 ii 行输出 I\texttt I 的第 ii 个整数。

13
113
49
68
91
10
179
2
71
78
45
57
10
88
10
113
179
68
57
45
10
2
88
71
49
78
91
9
6
8
7
9
5
1
2
4
3
9
8
7
6
5
1
2
3
4

Hint

由 ChatGPT 5 翻译