logo AlgoBeat OnlineJudge
登录 注册

#213639. [KOI 2025 #2] 跳跃

内存限制:1024 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。

按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。


对于 的情况,有 个编号从 1 到 的顶点按顺序排列在一条直线上,对于每个 (),都有一条双向连接顶点 的边。

例如,在 的情况下,顶点和边的排列如下图所示。

:::align{center} :::

小郑可以在这个图上通过跳跃来移动。当小郑从一个顶点跳跃到另一个顶点时,他会经过它们之间的所有边各一次。

例如:

  • 如果小郑从顶点 4 跳到顶点 2,他会分别经过顶点 3 和 4 之间的边,以及顶点 2 和 3 之间的边各一次。
  • 如果小郑从顶点 3 跳到顶点 4,他会经过顶点 3 和 4 之间的边一次。

小郑从顶点 1 开始,经过 次跳跃后到达顶点 ,在此过程中,他恰好访问了每个顶点一次。(最初在顶点 1 也算作一次访问。)

换句话说,如果将小郑访问顶点的顺序记为 ,则 ,并且

此时,将小郑在跳跃过程中经过顶点 之间的边的总次数记为 ()。

例如,如果小郑按 的顺序访问,则

:::align{center} :::

当给定小郑访问顶点时经过各条边的次数所构成的序列 时,请编写一个程序,根据此序列求出小郑的访问顺序

给定的序列 总是由某个访问顺序生成的,因此满足条件的访问顺序总是存在的。如果存在多个可能的访问顺序,输出任意一个即可。

输入格式

第一行给定顶点的数量

第二行给定 个整数 ,以空格分隔。此时, 表示经过顶点 之间边的次数。

输出格式

输出小郑的可能访问顺序 ,以空格分隔。如果存在多个可能的访问顺序,输出任意一个即可。

样例

样例输入 1

5
1 3 3 1

样例输出 1

1 3 4 2 5

样例输入 2

7
1 3 3 5 3 1

样例输出 2

1 6 2 3 5 4 7

数据范围与提示

限制条件

  • 所有给定的数都是整数。
  • 对于所有满足 ,有
  • 输入保证存在可能的访问顺序。

子任务

  1. (10 分)
  2. (10 分) 对于所有满足 ,有
  3. (15 分) ,且存在一个整数 (),使得 并且 。换句话说, 的序列呈现先单调递增后单调递减的形态。
  4. (35 分)
  5. (30 分) 无额外限制条件。