QOJ.ac

QOJ

时间限制: 7 s 内存限制: 2048 MB 总分: 100

#7908. 砖墙

统计

“包工头”鲍勃厌倦了建造小房子和铺设狭窄的道路,他渴望做点更大的事情。一位非常古怪的客户交给他的新工作正是他所需要的:他被要求建造一堵宽度固定但高度无限的墙!客户向他保证,他不必担心建筑材料的问题,而且已经为他订购了各种砖块的无限供应。当然,建造一堵稳定的墙需要非常仔细的规划,特别是如果它被要求是无限高的话。特别地,只有当相邻两行砖块之间的缝隙没有直接重合时,墙才是稳定的,如图 B.1 所示。鲍勃根据他长期的经验知道,如果能够建造这样一堵墙,那么可以通过交替使用仅两种行配置来实现。

图 B.1:左侧展示了使用样例输入 1 中的砖块类型建造的不稳定墙。右侧展示了使用相同砖块类型建造的稳定墙。注意,尽管图中只显示了两行,但通过重复这两种行配置,可以建造一堵无限高的墙。

鲍勃对这份新工作感到非常兴奋,并迅速投入了工作。给定可用的砖块类型,是否有可能建造一堵宽度恰好为 $w$ 且高度无限的稳定墙?如果可以,鲍勃应该如何仅使用两种交替的行配置来建造它?

输入格式

输入包含: 一行,包含两个整数 $n$ 和 $w$ ($1 \le n, w \le 3 \cdot 10^5$),分别表示砖块类型的数量和墙的宽度。 一行,包含 $n$ 个整数 $b$ ($1 \le b \le w$),表示砖块类型的宽度。

注意:鲍勃拥有所有砖块类型的无限供应。

输出格式

如果可以建造这样一堵墙,则输出 “possible”。否则,输出 “impossible”。

如果可以建造,请提供两种可以交替使用的行配置。对于每一行,首先输出该行所需的砖块数量,然后按使用顺序输出砖块的长度。如果交替使用这两行能产生一堵稳定的墙,则你的方案被视为有效。

如果有多种有效方案,你可以输出其中任意一种。

样例

样例输入 1

4 12
3 2 7 2

样例输出 1

possible
5
2 2 3 2 3
3
3 2 7

样例输入 2

3 11
6 7 8

样例输出 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.