QOJ.ac

QOJ

Time Limit: 1.5 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#15850. Factions vs The Hegemon

الإحصائيات

很久以前,存在一个古老的文明,其记录大多已湮没在历史中。已知当时有 $n$ 个交战派系,按从西到东的顺序排列并编号为 $1$ 到 $n$。第 $i$ 个交战派系的财富值由一个正整数 $w_i$ 表示。

这些交战派系之间从未实现真正的和平,但众所周知,为了对抗他们认为对所有人构成最大威胁的对象,他们会勾结并达成休战。当然,这只有在他们的联合力量确实能够击败该最大威胁时才有意义。

如果存在一个派系,其财富值严格大于所有其他派系财富值之和,我们称该文明处于“霸权”状态。

根据记录,历史上发生了 $n-1$ 次以下过程:

  • 其中一个派系崩溃。
    • 如果该文明不处于霸权状态,则财富值最大的派系崩溃。
    • 如果该文明处于霸权状态,则财富值最小的派系崩溃。
    • 如果出现平局,则位于最西侧的财富值最大/最小的派系崩溃。
  • 此后,其西侧和东侧最近的未崩溃派系(如果存在)的财富值各增加崩溃派系财富值的一半(向下取整)。
    • 即使崩溃的派系只与另一个派系相邻,该派系也只能获得崩溃派系财富值的一半。另一半则丢失了,可能是被蛮族抢走了,或者其他什么原因。

经过 $n-1$ 次迭代后,只剩下一个派系。但即便如此,这个文明还是灭亡了,可能是被蒙古人灭的?或者是罗马人。无论如何,记录已随时间流逝而丢失。

但幸运的是,作为一名计算机科学家,你可以模拟这个过程,找出派系崩溃的确切顺序,以及每个派系在崩溃时的财富值。

输入格式

第一行包含一个整数 $n$。

第二行包含 $n$ 个空格分隔的整数 $w_1, w_2, w_3, \dots, w_n$,表示各派系的初始财富值。

数据范围

  • $2 \le n \le 2 \cdot 10^5$
  • 对于每个 $i$,$1 \le w_i \le 10^9$

输出格式

输出 $n$ 行,描述每个派系崩溃的顺序(先崩溃的先输出)。每一行应包含两个空格分隔的整数:派系的编号及其崩溃时刻的财富值。

样例

样例输入 1

5
3 1 4 9 1

样例输出 1

4 9
3 8
1 3
2 6
5 12

样例输入 2

6
12 4 12 1 1 7

样例输出 2

1 12
3 12
5 1
4 7
6 10
2 24

说明

以下是第二个样例输入中发生的事件:

  • 财富值最大的派系财富为 12,其中派系 1 是最西侧的。此时文明不处于霸权状态,因此派系 1 崩溃。其财富的一半流向派系 2。此时派系 2、3、4、5、6 的财富值分别为 $\{10, 12, 1, 1, 7\}$。
  • 派系 3 财富为 12,因文明不处于霸权状态而崩溃。派系 2 和 4 各获得其财富值的一半。此时派系 2、4、5、6 的财富值分别为 $\{16, 7, 1, 7\}$。
  • 派系 2 是最富有的,财富值为 16,此时文明处于霸权状态。财富值最小的派系 5 崩溃。注意 $1/2$ 向下取整为 0,因此与 5 相邻的派系获得的财富为 0。此时派系 2、4、6 的财富值分别为 $\{16, 7, 7\}$。
  • 文明仍处于霸权状态,派系 4 是财富值为最小值 7 的派系中最西侧的一个。它崩溃,派系 2 和 6 的财富值变为 $\{19, 10\}$。
  • 文明仍处于霸权状态,派系 6 财富为 10,是当前最弱的,因此崩溃。派系 2 独自拥有 $\{24\}$ 的财富,直到它最终也崩溃。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.