CodeForces - 593B
Description The teacher gave Anton a large geometry homework, but he didn't do it (as usual) as he participated in a regular round on Codeforces. In the task he was given a set of n lines defined by the equations y = ki·x + bi. It was necessary to determine whether there is at least one point of intersection of two of these lines, that lays strictly inside the strip between x1 < x2. In other words, is it true that there are 1 ≤ i < j ≤ n and x', y', such that:
You can't leave Anton in trouble, can you? Write a program that solves the given task. Input The first line of the input contains an integer n (2 ≤ n ≤ 100 000) — the number of lines in the task given to Anton. The second line contains integers x1 and x2 ( - 1 000 000 ≤ x1 < x2 ≤ 1 000 000) defining the strip inside which you need to find a point of intersection of at least two lines. The following n lines contain integers ki, bi ( - 1 000 000 ≤ ki, bi ≤ 1 000 000) — the descriptions of the lines. It is guaranteed that all lines are pairwise distinct, that is, for any two i ≠ j it is true that either ki ≠ kj, orbi ≠ bj. Output Print "Yes" (without quotes), if there is at least one intersection of two distinct lines, located strictly inside the strip. Otherwise print "No" (without quotes). Sample Input
Input
4 1 2 1 2 1 0 0 1 0 2
Output
NO
Input
2 1 3 1 0 -1 3
Output
YES
Input
2 1 3 1 0 0 2
Output
YES
Input
2 1 3 1 0 0 3
Output
NO Hint In the first sample there are intersections located on the border of the strip, but there are no intersections located strictly inside it. Source
//题意:直线方程为y=k*x+b.
先输入n,再输入x1,x2(左端点、右端点的横坐标,y1,y2可以根据下面给的k,b求出),然后输入n组数,每组数都是k b。问组成的这n条直线是否会相交。
//思路:
首先根据方程和给出的k b求出y1,y2,将其存入结构体中,将其排序,在遍历这n条直线,如果不平行,就证明相交了。
|
CodeForces - 593B Anton and Lines (数学方程&技巧) 判断直线是否相交
最新推荐文章于 2020-07-26 16:47:21 发布