最强队伍
时间限制:2 秒
内存限制:256 MB
输入:标准输入
输出:标准输出
假设你正在设计一款基于《咒术回战》的抽卡游戏,并希望组建一支由 $k$ 名角色组成的最强队伍。和通常的抽卡游戏一样,剧情分歧和细节并不重要,但游戏设计上对队伍有一些特定规则。
玩家共有 $n$ 名角色,每名角色由三个参数描述:
- $a_i$ —— 咒力(若 $a_i < 0$,则角色为咒灵;若 $a_i > 0$,则为术师;若 $a_i = 0$,则为普通人);
- $b_i$ —— 混乱度(若 $b_i < 0$,则角色为混乱;若 $b_i > 0$,则为秩序;若 $b_i = 0$,则为中立);
- $c_i$ —— 力量等级。
例如,东堂葵拥有正的咒力,但属于混乱角色;而胀相则是中立的咒灵。
游戏对队伍有如下限制:
- 队伍中最多只能有一名混乱角色;
- 队伍中不能同时存在咒灵和术师。换句话说,整个队伍要么只由咒灵和普通人组成,要么只由术师和普通人组成。
请确定一支由 $k$ 名角色组成的队伍,满足上述条件且总力量最大。保证存在符合条件的角色集合。
输入数据
第一行包含两个整数 $n$ 和 $k$ —— 可用角色总数和队伍所需角色数($1 \le k \le n \le 2 \cdot 10^5$)。
接下来 $n$ 行中的第 $i$ 行包含三个整数 $a_i, b_i, c_i$ —— 第 $i$ 名角色的参数($-10^9 \le a_i, b_i \le 10^9$;$1 \le c_i \le 10^9$)。
输出数据
输出 $k$ 个不同的 $1$ 到 $n$ 之间的整数,顺序任意 —— 组成最优队伍的角色编号。如果有多个最优解,输出任意一个。
保证答案一定存在。
评分系统
只有通过对应子任务及其所需子任务的所有测试,才能获得该子任务的分数。
| 子任务 | 分数 | 额外限制 | 所需子任务 | 评测信息 |
|---|---|---|---|---|
| 0 | – | 样例 | 无 | 完全 |
| 1 | 5 | $n \le 2000$ | 0 | 完全 |
| 2 | 10 | $k = 1$ | 0 | 首次错误 |
| 3 | 10 | $k = 2$ | 0, 2 | 首次错误 |
| 4 | 15 | 所有 $b_i \ge 0$ | 0 | 首次错误 |
| 5 | 15 | 不超过一个 $b_i < 0$ | 0, 4 | 首次错误 |
| 6 | 15 | 要么所有 $a_i \ge 0$,要么所有 $a_i \le 0$ | 0 | 首次错误 |
| 7 | 15 | 若 $b_i < 0$,则 $a_i = 0$ | 0 | 首次错误 |
| 8 | 15 | 无 | 0–7 | 首次错误 |
样例
样例 1
输入:
4 2
-1 1 5
0 1 4
2 1 6
0 -1 3
输出:
3 2
样例 2
输入:
7 4
1 1 8
0 1 7
2 -1 10
-1 1 9
0 -1 6
-2 1 5
0 1 4
输出:
1 2 7 3
