#P12907. [NERC 2020] Hard Optimization

    ID: 12724 远端评测题 3000ms 512MiB 尝试: 0 已通过: 0 难度: 9 上传者: 标签>2020各省省选2022福建Special JudgeICPCNERC/NEERC

[NERC 2020] Hard Optimization

Description

给定数轴上的 nn 个线段 [Li;Ri][L_i; R_i]。所有 2n2n 个线段端点为两两不同的整数。

这些线段构成一个 层叠集——任意两条线段要么不相交,要么其中一条完全包含另一条。

请为每个线段选择一个非空子线段 [li,ri][l_i, r_i](要求 Lili<riRiL_i \le l_i < r_i \le R_i 且端点为整数),使得这些子线段互不相交(允许端点重合),并且它们的长度之和(i=1nrili\sum_{i=1}^n r_i - l_i)达到最大。

Input Format

第一行包含一个整数 nn1n21031 \le n \le 2 \cdot 10^3)——线段数量。

接下来 nn 行,每行包含两个整数 LiL_iRiR_i0Li<Ri1090 \le L_i < R_i \le 10^9)——第 ii 条线段的端点。

所有 2n2n 个线段端点互不相同。给定的线段集合是层叠的。

Output Format

第一行输出子线段长度的最大可能和。

接下来的 nn 行,每行输出两个整数 lil_irir_iLili<riRiL_i \le l_i < r_i \le R_i),表示第 ii 条线段选择的子线段。

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

Hint

下图展示了示例输入和示例输出的对应关系。

翻译由 DeepSeek V3 完成