P16441 [XJTUPC 2026] 直播获奖
题目背景
你常常追忆过去。生命瞬间定格在脑海。你将背后的时间裁剪、折叠、蜷曲,揉捻成天上朵朵白云。
时间被裁剪、折叠、蜷曲。咦,你好像不在联合省选 2025 的赛场上。你该在哪里停留?你问你自己。
时光荏苒,小 Z 和小 J 也会散去。而你们和一个人保持连接的方式就是记住,仅此而已。
时光走过,小 Z 和小 J 会再遇见。回首往事,大家都过上了各自想要的生活。
好像有什么不对。咦,你好像也不在 NOI2024 的赛场上。你该在哪里停留?你问你自己。
NOI2233 即将举行。为了增加观赏性,FFC 决定逐一评出每个选手的成绩,并直播即时的获奖分数线。
你终于想到了。你今年刚上初一,你正在 CSP-J 2020 的赛场上,比赛的第二题叫“[直播获奖](https://www.luogu.com.cn/problem/P7072)”。由于你不会桶排序,你在这题中取得了 95 分的高分。
咦,你怎么预知了你在“直播获奖”这一题上的得分呢?这真的可能吗?这可能被完成吗?
一年一度的 XJTUPC 又要举办了,但是老牌杂鱼猫娘出题人小标准突然有急事要回趟渐江。
原来你已经退役了。你正坐在 XJTUPC2026 的赛场上做一道叫做“直播获奖”的题目。你该在哪里停留?你问你自己。
题目描述
你正在玩一款被称为「ZJOI2022」的游戏。游戏发生在一个被称作「渐江」的幻想世界。你将扮演一位名为「咋克」的神秘角色,在自由的旅行中邂逅性格各异、能力独特的同伴们,和他们一起击败强敌,找回失散的亲人------同时,逐步发掘「九条可怜」的真相。
每位玩家在结束游戏后,拥有四个属性:
- 游戏 UID。游戏 UID 是每一位玩家的唯一标识符,为一个正整数。所有玩家的 UID 各不相同。
- 游玩游戏所使用的元素。元素为「阴」或者「阳」。
- 所在的游戏公会。每一位玩家属于一个公会,公会由正整数编号标识。
- 游戏成绩。游戏成绩为一个正整数。**保证所有玩家的成绩互不相同。**
这个游戏使用非常特别的结算方式。具体来说,「评测机」将会按 UID 从小到大的顺序揭露每一位玩家的总分。每位玩家的分数被揭露以后,预示着胜利者的「渐江省队」名单会随之更新。「渐江省队」由 A 队和 B 队组成,两队的成员互不重叠。
根据当前所有已揭露的玩家,按照下述规则更新「渐江省队」名单:
**规则一:A 队选拔**
设当前已揭露的玩家集合为 $S$。记集合 $S$ 的大小为 $|S|$。
A 队最多容纳 $5$ 位玩家。设 A 队中的玩家构成集合 $A$,按以下步骤确定 $A$:
- 若 $|S| \le 4$,则 $A = S$。
- 若 $|S| \ge 5$,则:
- 将 $S$ 中的玩家按成绩从高到低排序,取前 $5$ 名构成集合 $T$。
- 若 $T$ 中同时包含「阴」和「阳」两种元素,则 $A = T$。
- 否则,$T$ 中所有玩家均为同一元素 $x$(即全「阴」或全「阳」)。此时:
- 取 $S$ 中元素为 $x$ 的玩家中成绩最高的前 $4$ 名,记作 $A_x$。
- 取 $S$ 中元素为另一种元素 $y$($y \neq x$)的玩家中成绩最高的 $1$ 名(若存在),记作 $a_y$。
- 若 $a_y$ 存在,则 $A = A_x \cup \{a_y\}$;否则 $A = A_x$。
**规则二:B 队选拔**
在确定 A 队后,从剩余玩家 $S \setminus A$ 中选拔 B 队。
B 队最多容纳 $12$ 位玩家。设 B 队中的玩家构成集合 $B$,按以下步骤确定 $B$:
- 将 $S \setminus A$ 中的玩家按成绩从高到低排序,得到一个顺序列表。
- 初始化 $B$ 为空,并记录当前省队($A \cup B$)中每个公会已入选的人数。
- 按顺序遍历列表中的每位玩家:
- 若当前 B 队人数已达 $12$,则停止选拔。
- 否则,检查该玩家所属的公会:若该公会在省队中的当前人数**严格小于** $5$,则将该玩家加入 B 队,并更新该公会的人数;否则跳过该玩家,继续下一个。
- 当列表遍历完毕或 B 队满 $12$ 位玩家时,选拔结束。
你需要在每一位玩家的分数被揭露以后,给出当前的「渐江省队」名单。
你需要给出当前的「渐江省队」名单中所有玩家的 UID,按以下顺序排列:
- 先列出 A 队的所有玩家的 UID,再列出 B 队的所有玩家的 UID;
- 在同一队内,玩家 UID 按从小到大的顺序排列。
输入格式
输入的第一行,包含一个正整数 $n$($1\le n\le 100$),表示游戏的玩家人数。
接下来 $n$ 行,第 $i$ 行包含三个整数 $x_i,y_i$ 和 $z_i$($0\le x_i\le 1,1\le y_i\le n,1\le z_i\le 10^9$),用一个空格分隔,表示一位玩家的信息。具体地:
- 游戏 UID 为 $i$。
- $x_i=0$ 时,所使用的元素为「阴」;$x_i=1$ 时,所使用的元素为「阳」。
- 所在的游戏公会编号为 $y_i$。
- 游戏成绩为 $z_i$。
保证所有玩家的成绩互不相同。
输出格式
输出共 $n$ 行,第 $i$ 行包含若干个整数,用一个空格分隔,表示前 $i$ 位玩家的成绩被揭露后,「渐江省队」名单中所有玩家的 UID。
每一行先输出 A 队的所有玩家的 UID,再输出 B 队的所有玩家的 UID。同一个队内按照 UID 从小到大的顺序输出。