#P14762. [Bulgarian2025冬季赛]panama

[Bulgarian2025冬季赛]panama

题目描述

唐老鸭一向脾气暴躁,而且众所周知他还不穿裤子。现在他决定占领巴拿马运河,让它“再次伟大”。

巴拿马运河由 N等长的连续区段组成,编号为 1N。相邻区段之间由船闸隔开,因此每个区段中的水位都保持恒定;第 i 个区段的水位为高于海平面 h_i 毫米。

这些船闸使得占领运河几乎不可能,但唐老鸭仍然下定决心要这么做。

经过仔细分析后,唐老鸭发现无法从水路进入运河。因此,他决定驾驶私人飞机飞越运河,并跳伞进入某一个区段。之后,他计划逐个打开船闸,直到最后所有区段合并成一个大区段,并正式宣布运河已被占领。

当某个船闸被打开时,它两侧的两个区段会合并成一个新区段,且其中的水位会被重新平均

注意:唐老鸭只能打开那些与已经占领的区段相邻的船闸。

情报人员提醒他:如果在任意时刻,已经占领的区段的水位超过所有区段总体的平均水位,那么巴拿马国家安全防御系统就会启动,唐老鸭将被抓获。

请你编写程序 panama,输出一份可行的占领方案;如果不存在这样的方案,则输出 impossible

输入格式

第一行输入一个整数 N
第二行输入 N 个整数 h_1, h_2, ..., h_N

输出格式

输出一行:

  • 若存在可行方案,输出 N 个互不相同的整数,表示每一步占领的区段编号;
  • 否则输出 impossible

数据范围

  • 1 <= N <= 200000
  • 1 <= h_i <= 10^8

子任务

子任务 分值 依赖子任务 N 其他限制
1 20 <= 30
2 35 1 <= 1000
3 15 <= 200000 h_0 = +∞h_{N+1} = +∞,且满足 h_{i-1} >= h_i <= h_{i+1}i in [1, N] 的个数为 2
4 30 1–3

只有当某个子任务及其所依赖的全部子任务全部通过时,才能获得该子任务的分数。

样例 1

输入

5
4 1 1 3 2

输出

2 3 4 5 1

说明

所有区段的平均水位为 2.2

唐老鸭从编号 2 的区段开始,该区段水位为 1。随后他并入区段 3,此时水位不变。占领区段 4 后,水位升高为 5/3;占领区段 5 后,水位又降为 1.5。打开最后一个船闸后,整体水位与总平均值相等。

由于在整个过程中,占领区段的水位从未超过 2.2,因此占领成功。

样例 2

输入

3
1 2 1

输出

impossible

说明

唐老鸭不能先从区段 2 开始,因为它的水位高于总平均值。若从区段 1 或区段 3 开始,则下一步都必须打开通往区段 2 的船闸,而这同样会使当前水位超过限制。

因此,占领是不可能的。