Universal Cup Judging System

Universal Cup

时间限制: 3.0 s 内存限制: 1024 MB 总分: 100 难度: [显示] 可 Hack ✓
统计

在 Minecraft 的一次新更新中,蜘蛛终于获得了期待已久的手工织网能力。不过,为了保留游戏的风格,开发者只允许它们沿严格水平或严格竖直的方向拉出蛛丝。

一只蜘蛛拥有一块大小为 $W \times H$ 的矩形区域,我们将其视为顶点分别为 $(0,0)$、$(W,0)$、$(W,H)$ 和 $(0,H)$ 的矩形。在这个矩形的边界上标记了 $n$ 个点,它们是蜘蛛必须让蛛网经过的位置。

蜘蛛可以画出任意数量的水平和竖直蛛丝线段。这些线段可以任意放置:它们可以相交、沿着矩形的边界延伸,甚至悬在空中。蜘蛛必须织出一张网,使所有标记点都属于同一个连通分量。换句话说,必须能够仅沿着画出的线段移动,从任意一个标记点到达任意另一个标记点。

开发者自然希望节省蛛网纹理。因此,你需要求出所有画出的蛛丝的总长度的最小可能值。

输入格式

第一行包含一个整数 $t$($1 \le t \le 2 \cdot 10^5$),表示测试用例的数量。接下来给出各个测试用例。

每个测试用例的第一行包含三个整数 $n,W,H$($1 \le n \le 10^6$,$1 \le W,H \le 10^9$),分别表示标记点的数量和矩形的尺寸。

接下来的 $n$ 行,每行包含一对整数 $x_i,y_i$($0 \le x_i \le W$,$0 \le y_i \le H$),表示标记点的坐标。

保证所有点互不相同,且都位于矩形的边界上。还保证这些点以左下角 $(0,0)$ 为起点,沿矩形边界按逆时针顺序给出。所有测试用例的 $n$ 之和不超过 $10^6$。

输出格式

对于每个测试用例,输出一个数,表示能够拉出的蛛丝的总长度的最小可能值。

样例

输入格式 1

3
1 2 1
1 0
2 1 2
0 0
1 2
3 2 2
1 0
2 1
0 1

输出格式 1

0
3
3

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.