QOJ.ac

QOJ

実行時間制限: 5 s メモリ制限: 2048 MB 満点: 100

#9062. 线段绘制

統計

给定一些点,以及等数量的线段。所有点都严格位于 x 轴上方。每条线段都完全位于 x 轴上。没有任何两条线段有公共点。

你需要绘制一些新的线段——每个点与线段的配对各绘制一条。第 $i$ 条绘制的线段必须连接点 $i$ 与其对应的线段 $i$。点 $i$ 与线段 $i$ 的对应关系是固定的,你不能重新安排点与线段的连接关系。

任意两条绘制的线段不得严格相交,但允许在端点处接触。

你需要求出所有绘制线段的总长度的最小值,或者判断是否无法在满足条件的情况下绘制这些线段。

输入格式

第一行包含一个整数 $n$ ($1 \le n \le 10^5$),表示给定的点与线段配对的数量。

接下来的 $n$ 行,每行包含四个整数 $x, y, l, r$ ($-10^6 \le x \le 10^6, 0 < y \le 10^6, -10^6 \le l \le r \le 10^6$)。

这表示一个位于 $(x, y)$ 的点,以及其对应的端点为 $(l, 0)$ 和 $(r, 0)$ 的线段。线段将按从左到右的顺序给出。没有任何两条给定的线段有公共点。两个点可能位于相同的位置。

输出格式

输出一个实数,表示所有绘制线段的总长度的最小值。如果答案的绝对误差或相对误差不超过 $10^{-6}$,则视为正确。如果无法在不相交的情况下绘制这些新线段,则输出 $-1$。

样例

样例输入 1

3
0 6 -4 -2
-2 1 -1 0
0 4 1 4

样例输出 1

11.9995169566

样例输入 2

3
0 6 -4 -2
0 4 -1 0
-2 1 1 4

样例输出 2

-1

样例输入 3

2
0 5 -1000000 -1
0 5 1 1000000

样例输出 3

10.1980390272

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.