#LC001. #A.红绿灯

#A.红绿灯

题目描述

C城有一条东西方向的笔直的主干道,该道路可看成一条以东为正方向的一维坐标轴,道路的最西端坐标为(0,0)(0,0).

道路上有nn个红绿灯,第ii个红绿灯的坐标为xix_i,红灯时长为rir_i,绿灯时长为gig_i。每个红绿灯以"红灯 rir_i秒,绿灯gig_i秒"的规律工作。例如,ri=5r_i=5,gi=3g_i=3,则第ii个红绿灯在00秒~55秒时为红灯,在55秒时切换为绿灯,在55秒~88秒时为绿灯,在88秒时切换为红灯,在88秒~1313秒时为绿灯,等等。

某人准备00时整从道路最西端(坐标为00的位置)驾车向东出发,他的车有一个速度上限uu,在出发前他可以将车速vv固定为11uu中的任意一个整数(含11uu),这样00时整出发后车将一直保持v×m/sv\times m/s的速度(不计车的启动时间,即对任意实数t0t\ge 0 ,出发tt秒时车的坐标为vtvt),不能刹车或加速。

如果车遇到一个红绿灯时其正处于红灯,就会受到处罚,而如果处于绿灯,或者红灯与绿灯切换的时刻,就不会被罚。已知00时整(出发的时刻)所有红绿灯均刚从绿灯切换为红灯,请你计算出所有可行的车速vv,使得车能安全地通过所有红绿灯。

输入格式

第一行包含两个用空格隔开的正整数 n,vn,v,分别表示红绿灯的数量和车的速度上限。

接下来nn行,每行包含三个用空格隔开的正整数xi,ri,gix_i,r_i,g_i,分别表示第ii个红绿灯的坐标、红灯时间以及绿灯时间。保证任意两个红绿灯的坐标不相同。

输出格式

输出一行,按从小到大的顺序输出所有可行的车速vv,每两个数之间用一个空格隔开。数据保证至少有一个可行的车速。

样例

2 10
9 2 1
7 2 5
1 3

样例说明

v=2v=2则遇到坐标为99的红灯,若v4v\ge 4, 则遇到坐标为77的红灯;故vv只能是1,31,3

数据规模与约定

对于50%50\%的数据, $1\le n\le 2,1\le u\le 10,1\le x_i\le 10,1\le r_i\le 10,1\le g_i\le 1e9$;

对于100%100\%的数据,$1\le n\le 10000,1\le u\le 100,1\le x_i\le 1e9,1\le r_i\le 1e9,1\le g_i\le 1e9$.