程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> lines-Parabolic teleports

lines-Parabolic teleports

編輯:編程解疑
Parabolic teleports

Description

Flatland is a plane with a Cartesian coordinate system Oxy. Citizens of Flatland are points that move with the speed 1. Consequently, the minimal time it takes for a Flatlander to move from point V to point W is equal to the length of the line segment VW. This fact is taught in the schools of Flatland as the “shortest path theorem”.

However, since George Edward Nius invented the devices called parabolic teleports, the theorem no longer holds. A parabolic teleport is a contiguous section of a parabola along which it is possible to move with infinite speed. In other words, it is possible to move from any point on the parabolic teleport to any other point on the same parabolic teleport in zero time.

The points (x, y) that belong to the teleport are given by the formulae y = A·x2+B·x+C, XL ≤ x ≤ XR, where A, B, C, XL, XR are the parameters of the teleport.

After inventing the teleports, G.E.Nius founded a company to build them. At the moment, the company has already built N of those devices. One might imagine that they are shoveling money left and right, but…

But in practice, the Flatlanders still think the shortest path theorem is true and nobody has even tried the parabolic teleports. To help the situation, G.E.Nius has hired you to write a program that, given two points V and W, would compute the time it would take to move from V to W using the teleports the company has already built. The idea is that the users of the program will see that the time is less than the length of the segment VW and start to use the invention of Mr. Nius.

Are you up to the task?

Input

On the first line of the file is the integer N (0 ≤ N ≤ 100), the number of the teleports. On the second line of the file are the integers XV and YV (−100 ≤ XV ≤ 100, −1 000 000 ≤ YV ≤ 1 000 000), the coordinates of the source point V. On the third line of the file are the integers XW and YW (−100 ≤ XW ≤ 100, −1 000 000 ≤ YW ≤ 1 000 000), the coordinates of the destination point W.

Each of the N following lines contains 5 integers, separated by spaces, that describe the ith teleport – giving its parameters Ai, Bi, Ci, XLi, XRi (‑100 ≤ Ai, Bi, Ci ≤ 100, Ai ≠ 0, −100 ≤ XLi < XRi ≤ 100).

Output

The first and only line of the file should contain one real number, the minimal time it takes to move from point A to point B. The absolute error of the answer must not exceed 10−4.

Sample Input

2
0 10
0 -10
1 0 0 -10 10
-1 0 0 -10 10
Sample Output

6.2450

最佳回答:


http://blog.csdn.net/wiking__acm/article/details/7805264

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved