第 001 场 AtCoder Regular Contest
D
赛车游戏
レースゲーム
AtCoder
未评级
原题
← C→

赛车游戏AI (CI翻译)

Problem Statement

题目描述

AI (CI翻译)

高橋君は、レーシングゲームをプレイしようとしています。 レースは $(x, y) = (start, 0)$ からスタートし、$(x, y) = (goal, N)$ のゴールに向かって走っていきます。 $0 ≦ k ≦ N$ の $y=k$ に対してコースの存在する左端と右端が与えられ、それぞれを順に結んだ線の内側がコースとなります。 image 図:入力1の例。赤丸がスタート地点。青丸がゴール地点。茶色部分がコースとなる。 レースに使う車はコース上以外を走ることは出来ません。また、一瞬で方向転換できるものとし、車の幅及び長さは無視できるものとします。 高橋君は、このレーシングゲームを攻略するためにスタートからゴールまでの最短経路を求めたいです。


高桥君准备玩一款赛车游戏。比赛从 $(x, y) = (start, 0)$ 出发,向 $(x, y) = (goal, N)$ 的终点行驶。对于 $0 ≦ k ≦ N$ 的 $y=k$,给出了赛道存在的最左端和最右端,依次连接这些端点后,两条线所围成的内部区域就是赛道。 image 图:输入 1 的示例。红色圆点为起点,蓝色圆点为终点,棕色部分为赛道。

比赛使用的车辆不能驶出赛道。车辆可以瞬间改变方向,并且可以忽略车辆的宽度和长度。高桥君希望求出从起点到终点的最短路径,以攻略这款赛车游戏。


AI (CI翻译)

Input

输入格式

AI (CI翻译)

入力は以下の形式で与えられる。 $N$ $start$ $goal$ $l_0$ $r_0$ $l_1$ $r_1$ $:$ $:$ $l_N$ $r_N$ $1$ 行目には、レースの全長 $N$ が与えられる。 $2$ 行目には、コースのスタート地点の $start$ 座標及びゴール地点の $goal$ 座標が空白を区切りとして与えられる。 続く $3$ 行目から $N+2$ 行目の各行には、$i+3$ 行目に$y=i$ のコースの左端 $l_i$ 及びコースの右端 $r_i$ が空白を区切りとして与えられる。 また、入力値はそれぞれ以下の条件を満たす。 $N$ は整数であり、$1 ≦ N ≦ 200,000$ を満たす。 $l_i$ 及び $r_i$ は整数であり、$0 ≦ l_i < r_i ≦ 1,000,000$ を満たす。 $start$ は整数であり、$l_0 ≦ start ≦ r_0$ を満たす。 $goal$ は整数であり、$l_N ≦ goal ≦ r_N$ を満たす。

输入格式如下:

$N$ $start$ $goal$ $l_0$ $r_0$ $l_1$ $r_1$ $:$ $:$ $l_N$ $r_N$

第 $1$ 行给出比赛的总长度 $N$。

第 $2$ 行以空格分隔给出赛道起点的 $start$ 坐标和终点的 $goal$ 坐标。

从第 $3$ 行到第 $N+2$ 行,每行以空格分隔给出 $y=i$ 处赛道的最左端 $l_i$ 和最右端 $r_i$。

此外,输入数据满足以下条件:

$N$ 为整数,满足 $1 ≦ N ≦ 200,000$。

$l_i$ 和 $r_i$ 为整数,满足 $0 ≦ l_i < r_i ≦ 1,000,000$。

$start$ 为整数,满足 $l_0 ≦ start ≦ r_0$。

$goal$ 为整数,满足 $l_N ≦ goal ≦ r_N$。AI (CI翻译)

Output

输出格式

AI (CI翻译)

レースの最短経路を $1$ 行で出力せよ。 なお、出力は絶対誤差または相対誤差 $1e-9$ 以下までを許容する。

在一行中输出比赛的最短路径长度。允许绝对误差或相对误差不超过 $1e-9$。AI (CI翻译)



AI (CI翻译)

样例

Input #1
7
3 3
2 5
4 6
2 3
3 6
3 4
4 6
2 5
1 5
Output #1
8.22677276241436
- 赤丸をスタート地点、青丸をゴール地点として、下図の赤線のルートが最短となります。 ![image](https://atcoder.jp/img/arc/001/4_2.png) ---
Input #2
5
3 3
0 5
0 5
0 5
0 5
0 5
0 5
Output #2
5
题目信息
题号
arc001_4
时间限制
2 s
内存限制
64 MB

题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(gpt-6.1-sol),如有出入请以原文为准。