QOJ.ac

QOJ

時間限制: 2.5 s 記憶體限制: 256 MB 總分: 100

#14957. 队伍

统计

格丁尼亚(Gdynia)的一所小学正在举行运动会。活动中最重要的部分是年度足球杯。

几名孩子聚集在足球场上,准备组建队伍。由于每个人都想加入最好的队伍,队员们无法达成一致。有些人威胁说不参加比赛,有些人开始哭泣,现在没有人确定比赛是否还能进行。

体育老师 Byteman 负责组织这次比赛。他决定亲自将孩子们分成若干个队伍,以便让每个孩子都对自己的队伍感到满意。球场上的 $n$ 个孩子(编号为 $1$ 到 $n$)中,第 $i$ 个孩子表示,如果她所在的队伍人数少于 $a_i$ 人,她就会对自己的队伍感到不满意。

除了满足孩子们的要求外,Byteman 还希望最大化队伍的总数。如果仍有多种可能,他要求最大队伍的人数尽可能小。

由于这被证明是一项相当困难的任务,Byteman 向你寻求帮助。

输入格式

输入第一行包含一个整数 $n$($1 \le n \le 1\,000\,000$)。

接下来 $n$ 行,第 $i$ 行包含一个整数 $a_i$($1 \le a_i \le n$),表示满足第 $i$ 个孩子所需的最小队伍人数。

输出格式

输出第一行应包含一个整数 $t$,表示最大可能的队伍数量。

接下来 $t$ 行,每行包含对一个队伍的描述。第 $i$ 行应包含一个整数 $s_i$($1 \le s_i \le n$)表示第 $i$ 个队伍的人数,接着是 $s_i$ 个整数 $k_1, k_2, \dots, k_{s_i}$(对于 $j = 1, 2, \dots, s_i$,有 $1 \le k_j \le n$),表示属于第 $i$ 个队伍的孩子编号。

如果存在多种可能的答案,你可以输出在所有恰好包含 $t$ 个队伍的方案中,使最大队伍人数最小化的任意一种方案。

数据范围

对于分值至少为 50 分的测试数据,$n$ 不超过 $5\,000$。

样例

输入样例 1

5
2
1
2
2
3

输出样例 1

2
2 4 2
3 5 1 3

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.