QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 1024 MB 總分: 100

#14878. 平整船闸

统计

装载着你最喜欢的零食——eierballen(蛋球)的货船,就在停电前的一刻。使用 Microsoft Copilot Designer 生成。

糟糕!最近的一次停电不仅让格罗宁根(Groningen)陷入了黑暗,更糟糕的是,它还导致了该市历史悠久但已废弃的船闸系统彻底瘫痪,关闭了水道。该船闸由一系列完全相同的闸室组成,每对相邻的闸室之间都有一个可以打开或关闭的闸门。然而,系统故障导致所有闸门都保持关闭状态,阻断了闸室之间的水流。通常情况下,这不会困扰你,但你正急切地等待着你最喜欢的零食——eierballen(蛋球)的船运到来。

幸运的是,专业水肺潜水员洛特(Lotte)愿意承担修复旧船闸的任务。她设计了一个既简单又大胆的计划:

洛特目前正乘坐直升机前往船闸。抵达后,她将潜入她选择的某个闸室的冷水中,并开始手动打开闸门。通过在已经连通的闸室中游泳,她可以打开左侧或右侧的下一个关闭的闸门,从而使连通闸室之间的水位达到平衡。

然而,在深水中游泳是危险的,应尽可能避免。她任务的危险程度可以用她为了打开所有闸门而必须游过的最大水深来衡量。显然,当所有闸室都连通时,洛特无法避免在最终产生的最终水位中游泳。但是,她能否避免在任何比这更深的水中游泳呢?

作为一个例子,考虑图 L.1 所示的第一组样例。当按照样例输出给出的顺序连通闸室时,洛特绝不会在任何比最终水位更深的水中游泳。

请帮助洛特确定连通闸室以打开所有闸门的顺序,使得游泳时的水深不超过最终水深,或者确定这是不可能的。

图 L.1:第一组样例的直观展示。水平虚线表示最终水位。洛特可以在不超过该水位的水深中游泳并连通所有闸室。

输入格式

输入包含:

  • 一行包含一个整数 $n$($2 \le n \le 2 \cdot 10^5$),表示闸室的数量。
  • 一行包含 $n$ 个整数 $a$($1 \le a \le 10^8$),表示每个闸室的初始水位。

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

输出格式

如果可以在不超过最终水深的情况下打开所有闸门,输出洛特首次进入(从而连通)这 $n$ 个闸室的顺序。否则,输出 "impossible"。

如果存在多个有效解,你可以输出其中任意一个。

样例

输入样例 1

5
3 1 1 3 2

输出样例 1

2 3 4 5 1

输入样例 2

3
1 2 1

输出样例 2

impossible

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.