QOJ.ac

QOJ

Limite de temps : 3 s Limite de mémoire : 512 MB Points totaux : 100

#1669. 困难的优化

Statistiques

给定直线上的 $n$ 个线段 $[L_i, R_i]$。所有 $2n$ 个线段端点均为两两不同的整数。 该集合是层叠的(laminar)——即任意两个线段要么不相交,要么其中一个包含另一个。

请在每个线段中选择一个具有整数端点的非空子线段 $[l_i, r_i]$(满足 $L_i \le l_i < r_i \le R_i$),使得任意两个子线段互不相交(允许它们拥有公共端点),并使它们的长度之和($\sum_{i=1}^n r_i - l_i$)最大化。

输入格式

第一行包含一个整数 $n$ ($1 \le n \le 2 \cdot 10^3$),表示线段的数量。 接下来的 $n$ 行中,第 $i$ 行包含两个整数 $L_i$ 和 $R_i$ ($0 \le L_i < R_i \le 10^9$),表示第 $i$ 个线段的端点。

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

输出格式

第一行输出子线段长度之和的最大值。 接下来的 $n$ 行中,第 $i$ 行输出两个整数 $l_i$ 和 $r_i$ ($L_i \le l_i < r_i \le R_i$),表示为第 $i$ 个线段选择的子线段。

样例

输入 1

4
1 10
2 3
5 9
6 7

输出 1

7
3 6
2 3
7 9
6 7

说明

样例输入和样例输出如下图所示。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.