首页 > 试题广场 >

谁挡住了我的红绿灯

[编程题]谁挡住了我的红绿灯
  • 热度指数:1048 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

命运的十字路口前,有辆车在等红灯。还来不及思考此刻的选择会将他们带向何方,司机们发现了一个更现实的问题——由于车的高度不尽相同,某些车会因前车的遮挡而无法看到红绿灯。这时候,“谁挡住了谁的红绿灯”便成为一个……很好的笔试题!


现已知红绿灯高度为辆按距离红绿灯由近到远分别标号为,第辆车与红绿灯的距离为,高度为。为简化问题,我们以距红绿灯的距离为x轴,高度为y轴建立平面直角坐标系,则红绿灯可抽象为一点,第辆车可抽象为线段。我们称车挡住了车的红绿灯,当且仅当,且车看红绿灯的视线,即的连线与代表车的线段相交(含两端)。

现在,我们需要你对每辆车计算谁挡住了它的红绿灯;即对于每一辆车,求最大的满足“车挡住了车的红绿灯”。

输入描述:
第一行包含两个非负整数
第二行包含个非负整数


输出描述:
输出共有行,第行包含对于车的答案,若没有车挡住车,则该行输出0。
示例1

输入

9 5
5 4 3 4 3 3 3 3 3

输出

0
1
2
1
4
4
4
4
1

备注:

20%的数据 
50%的数据 
80%的数据 
100%的数据 

这道题你会答吗?花几分钟告诉大家答案吧!