33OJ
登录 注册

#P17653. [IO 2025 #1] 线段谜题

    ID: 20301 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 显示难度提高+/省选− 上传者: 标签>2025Special Judge枚举分类讨论

[IO 2025 #1] 线段谜题

题目描述

大黄蜂在旅途中,有时需要解开各种谜题。

例如,为了与幻影战斗,她必须先打开通向幻影的门。门上有一个宽度为 WW 的锁孔,大黄蜂有 nn 把钥匙。第 ii 把钥匙的底座是一个 ai×1a_i\times1 的矩形,底座上还有一个 bi×1b_i\times1 的矩形凸起;凸起左端与底座左端的距离为 cic_i。保证 ai≥bi+cia_i\ge b_i+c_i。钥匙形状如下图所示:

:::align{center} :::

可以按照任意顺序,将钥匙的底座首尾相接地排成一行。此外,还可以翻转任意一把钥匙,即将它替换为左右对称的形状,此时 cic_i 变为 ci′=ai−bi−cic'_i=a_i-b_i-c_i。为了继续前进,大黄蜂需要让尽可能多把钥匙的凸起进入锁孔。如果这些钥匙最左侧凸起的左端与最右侧凸起的右端之间的距离不超过 WW,它们就能放进锁孔。

下图中,可以让三把钥匙进入锁孔。

:::align{center} :::

请帮助大黄蜂解开这个谜题!

输入格式

第一行包含两个整数 n,Wn,W,分别表示钥匙数量和锁孔宽度,1≤n≤2⋅1051\le n\le2\cdot10^5,1≤W≤1091\le W\le10^9。

接下来 nn 行,第 ii 行包含整数 ai,bi,cia_i,b_i,c_i,表示第 ii 把钥匙的参数,1≤bi≤ai≤1091\le b_i\le a_i\le10^9,0≤ci≤ai−bi0\le c_i\le a_i-b_i。

输出格式

第一行输出整数 kk,表示最多能放入锁孔的钥匙数量。

下一行输出 kk 个非零整数,范围为 −n-n 到 nn,按照从左到右的顺序描述放入锁孔的钥匙。如果接下来应放置编号为 ii 的钥匙,且无需翻转,则输出 ii;如果需要将其左右翻转,则输出 −i-i。

所有使用的钥匙必须互不相同。

3 102
100 1 99
100 1 99
100 2 49
3
2 3 -1
4 30
10 2 1
10 2 6
11 10 1
11 10 0
4
-1 3 4 -2
4 10
3 1 2
6 3 2
7 4 2
4 2 2
3
4 1 -2