#P1211. Traffic Lights

    ID: 212 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>数学计算最小公倍数时间处理New Zealand 1993 Division Iuva 161

Traffic Lights

描述

实现平稳且经济地开车上班的一种方法是“赶上”每一个交通信号灯,即在接近信号灯时,信号灯刚好变为绿灯。有一天,当你驶过一座小山的山顶时,注意到视线范围内的所有交通信号灯刚刚变为绿灯,因此你赶上所有信号灯的机会很小。当你在红灯前等待时,开始思考:需要多久之后所有的信号灯才会再次同时显示绿灯?这里并不要求所有灯同时变为绿灯,只要它们在某一刻同时显示绿灯即可,哪怕只有一秒钟。

编写一个程序,判断这一事件是否会在合理的时间内发生。时间的计算从所有信号灯同时变为绿灯的瞬间开始,但初始阶段所有灯仍保持绿灯的时间不计入统计。

输入

输入由一系列场景组成。每个场景的数据由一系列表示交通信号灯周期的整数组成,这些整数可能分布在多行中,每行不超过100100个字符。每个数字代表一个信号灯的周期时间。周期时间是指交通在一个方向上可以通行的时间;注意绿灯周期的最后55秒实际上是黄灯。因此,数字2525表示某个方向上的信号灯将保持2020秒绿灯、55秒黄灯和2525秒红灯。周期时间不会少于1010秒,也不会超过9090秒。每个场景中至少有两个信号灯,最多不超过100100个。每个场景以000(0)结束。整个输入以一行三个000(0 00 00)结束。

输出

输出由一系列行组成,每行对应输入中的一个场景。每行输出从所有信号灯同时变为绿灯的瞬间开始,到至少有一个信号灯变为黄灯后,所有信号灯再次同时显示绿灯所需的时间,格式为小时、分钟和秒(如示例所示)。如果超过55小时仍未同时显示绿灯,则输出消息Signals“Signals failfail toto synchronisesynchronise inin 55 hourshours”

19 20   0
30
  25    35 0
0 0 0
00:00:40
00:05:00

来源

New Zealand 1993 Division I,uva 161