#HK6974. 「ICPC World Finals 2024」双人马背摔跤

「ICPC World Finals 2024」双人马背摔跤

题目描述

游牧游戏探索委员会(NGEC)正在筹划一项双人马背摔跤锦标赛,参赛者将成对骑在同一匹马上进行比赛。他们已经公布了一场试点锦标赛,并有 nn 位热情的骑手报名参加!现在,NGEC 需要将这些骑手配对,以确保锦标赛既公平又激动人心。

中亚奥达里斯帕克联盟(CAAL)维护着所有马背摔跤选手的名单及其评分。根据以往普通马背摔跤的经验,NGEC 决定,如果一对骑手的评分之和等于特定的整数 ss,这样的配对是最平衡的。

由于一些复杂的许可原因,CAAL 拒绝公开每位骑手的准确评分。但 NGEC 掌握了一些可靠的估计数据,知道每位骑手 ii 的真实评分 rir_{i} 位于区间 [li,ui]\left[l_{i}, u_{i}\right] 内。因此,如果存在评分 ri[li,ui]r_{i} \in \left[l_{i}, u_{i}\right]rj[lj,uj]r_{j} \in \left[l_{j}, u_{j}\right],使得 ri+rj=sr_{i} + r_{j} = s,NGEC 会考虑将骑手 iijj 配对。

NGEC 希望尽可能多地组成不重叠的骑手对。你需要帮助他们实现这一目标。

输入格式

第一行包含两个整数 nnss $(2 \leq n \leq 2 \cdot 10^{5}, 1 \leq s \leq 10^{9})$,分别表示骑手的数量和一对骑手评分之和的目标值。骑手编号从 11nn。接下来有 nn 行,其中第 ii 行包含两个整数 lil_{i}uiu_{i} (1liui109)(1 \leq l_{i} \leq u_{i} \leq 10^{9}),表示第 ii 位骑手的评分范围。

输出格式

输出 kk,表示可以组成的最大骑手对数量,随后输出 kk 组整数对,表示每对骑手的编号。如果有多种配对方式,输出任意一种即可。

6 10
6 7
1 4
2 2
3 8
5 7
9 9

2
6 2
3 4