QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 1024 MB Puntuación total: 100

#24. 滑雪

Estadísticas

在未能成功获得 IOI 参赛资格后,Kleofáš 决定成为一名回转滑雪冠军。明天是 Kleofáš 人生中非常重要的一天:他将参加他的第一场滑雪比赛!

在比赛期间,Kleofáš 需要从起点出发到达终点,同时穿过 $n$ 个闸门。为了尽可能快,Kleofáš 希望走最短的轨迹。

题目描述

滑雪赛道可以描述为一个起点 $S$、一个终点 $F$ 和 $n$ 个闸门。每个闸门都是一条平行于 $x$ 轴(即水平)的线段。没有两个闸门位于相同的 $y$ 坐标(海拔)上。起点位于所有闸门的上方,即其 $y$ 坐标高于任何闸门的 $y$ 坐标。终点位于所有闸门的下方,也位于起点的下方。

求一条最短的折线,从点 $S$ 出发,到达点 $F$,并按从上到下的顺序穿过所有闸门。我们称折线与线段相交,当且仅当它们至少有一个公共点(该点可以是线段的端点)。

输入格式

第一行包含一个整数 $n$ ($0 \le n \le 10^6$),表示闸门的数量。第二行包含四个整数 $x_S, y_S, x_F, y_F$,分别表示点 $S = (x_S, y_S)$ 和 $F = (x_F, y_F)$ 的坐标。

接下来 $n$ 行,第 $i$ 行包含三个整数 $x_{1i}, x_{2i}, y_i$,表示第 $i$ 个闸门是从 $(x_{1i}, y_i)$ 到 $(x_{2i}, y_i)$ 的线段。对于每个 $i$,满足 $x_{1i} < x_{2i}$。

所有坐标均在 $-10^9$ 到 $10^9$ 之间(含边界)。闸门按从上到下的顺序排列,即 $y_S > y_1 > y_2 > \dots > y_n > y_F$。

输出格式

可以证明,一定存在唯一的最短折线,且其所有顶点都具有整数坐标。输出该折线,且不包含任何冗余顶点(即仅输出折线改变方向的顶点)。

第一行输出一个整数 $k$,表示最优折线中的顶点数量。接下来输出 $k$ 行,第 $i$ 行包含两个空格分隔的整数 $x_i, y_i$,表示折线第 $i$ 个顶点的坐标。顶点必须按从起点到终点的顺序命名,因此必须满足 $x_1 = x_S, y_1 = y_S, x_k = x_F, y_k = y_F$ 且 $y_1 > y_2 > \dots > y_k$。

子任务

子任务 分值 最大 $n$
1 20 200
2 30 2000
3 50 1000000

样例

输入 1

4
5 10 6 0
0 4 7
7 10 6
5 8 4
2 5 1

输出 1

5
5 10
4 7
7 6
5 1
6 0

说明

情况如下图所示:

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.