#P16553. [Bapc2024]Levelling Locks

[Bapc2024]Levelling Locks

题目背景

一次停电导致格罗宁根一套古老的船闸系统彻底故障,所有闸门都保持关闭,水道因此被阻断。

船闸由一排完全相同的水室组成,相邻水室之间各有一扇可以打开或关闭的闸门。专业潜水员 Lotte 打算亲自下水修复系统。

题目描述

共有 nn 个从左到右排列的水室,第 ii 个水室的初始水位为 aia_i

Lotte 可以首先进入任意一个水室。之后,当前已经连通的水室始终构成一个连续区间;她每次可以打开该区间左侧或右侧紧邻的一扇闸门,把一个新的水室并入当前连通区域。

每当一扇闸门被打开,新连通区域内的水会立即均匀化。由于所有水室完全相同,连通区域的水位等于其中各水室初始水位的算术平均值。

深水潜泳十分危险。Lotte 在整个过程中需要承受的最大水深,就是她打开全部闸门期间出现过的最大连通区域水位。

当全部水室最终连通后,水位必然等于所有 aia_i 的平均值。请判断是否存在一种连接顺序,使得过程中任意时刻的水位都不高于这个最终水位。

若存在,请输出 Lotte 首次进入各个水室的顺序。该顺序必须满足:

  • 第一个编号可以任意选择;
  • 此后每个新编号都必须与此前已经出现的连续区间相邻;
  • 每个前缀所对应连通区间的平均水位均不超过全部水室的最终平均水位。

下图展示了样例 1 的一种合法过程。水平虚线表示最终水位,红点表示 Lotte 所在位置。

样例 1 的连接过程

输入格式

第一行包含一个整数 nn2n2×1052\le n\le 2\times10^5),表示水室数量。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n1ai1081\le a_i\le10^8),表示各水室的初始水位。

闸门所占空间可以忽略不计。

输出格式

如果无法在不超过最终水位的前提下打开全部闸门,输出:

impossible

否则输出 nn 个整数,表示 Lotte 首次进入并连接各个水室的顺序。

如果存在多个合法方案,可以输出任意一个。

本题答案可能不唯一。在 Hydro OJ 中部署时需要使用 Special Judge 验证输出顺序。

样例 1

输入

5
3 1 1 3 2

输出

2 3 4 5 1

样例 2

输入

3
1 2 1

输出

impossible