相信大家都听说过“是男人就下100层”系列游戏,游戏中包括多个长度和高度各不相同的平台,地面是最低的平台,高度为零,长度无限。 一个男人在开始的时候从高于所有平台的某处开始下落,它的下落速度始终为1米秒。当他落到某个平台上时,游戏者选择让他向左或向右跑,跑动的速度也是1米秒。当他跑到平台的边缘时会继续下落。要求每次下落的高度不能超过MAX米,不然就会摔死,游戏也会结束。 请帮忙设计一个程序,计算最快到达地面所用的时间。
输入描述:
输入包含多组数据。每组测试数据的第一行是四个整数N、X、Y、MAX,用空格分隔。N是平台的数目(不包括地面),X和Y是游戏开始时男人所在位置的坐标,MAX是一次下落的最大高度。紧接着有N行,每行描述一个平台的信息,包括三个整数,X1[i],X2[i]和H[i]。H[i]表示平台的高度,X1[i]和X2[i]表示平台左右端点的横坐标。1 ≤ N ≤ 1000;-20000 ≤ X, X1[i], X2[i] ≤ 20000;1 ≤ H[i] 平台的厚度忽略不计,如果恰好落在某个平台的边缘,被视为落在平台上。所有的平台均不重叠或相连。测试数据保证问题一定有解。
输出描述:
对应每一组输入,输出一个整数,为到达地面最早的时间。
示例1
输入
3 8 17 20
0 10 8
0 10 13
4 14 3
加载中...