#P1304. World's Worst Bus Schedule
World's Worst Bus Schedule
描述
你是个极没耐心的人,最讨厌等待。你正打算前往新奥尔良看望一位亲戚。可问题是,你所在的公交站有着世上最糟糕的公交时刻表!上面既没列出公交的到站时间,也没列出离站时间,仅标注了每趟公交的线路运行时长。由于你性子急,便掏出笔记本电脑,打算编写一个程序,来算出你得等多久下一趟公交才会来。反正你也无事可做,对吧?
输入
该问题的输入由一系列(非空)不超过个的数据集构成。每个数据集的格式遵循以下描述,且数据集之间没有空行分隔。
单个数据集包含个部分:
- 起始行:仅一行,格式为 "START N",其中表示运行的公交数量,且满足。
- 线路时长行:这类行有 条,每行包含个线路时长,这些时长表明每趟公交跑完特定线路后返回公交站所需的时间。线路时长用到 (包含 和)之间的整数表示。
- 到站时间:每个数据集仅有一行此内容。该行代表你到达公交站并开始等待的时间,即公交开始运行后(所有公交均在时间开始运行)你到达公交站所经过的时间单位数。这个数字用正整数表示(当然,也可能是,这意味着公交刚开始运行你就到了公交站)。
- 结束行:仅一行,内容为 "END"。
最后一个数据集之后会有一行 "ENDOFINPUT"。
输出
每个数据集对应一行输出。这行内容就是你到达后需等待下一趟公交到来的时间单位数。你特别讨厌等待,所以会直接搭乘第一辆回到车站的公交。但愿这就是开往新奥尔良的公交!
注意事项
- 所有公交会持续按线路运行,跑完最后一条线路后会重新从第一条线路开始。
- 若乘客的到站时间与某趟公交的发车时间一致,该乘客可即刻搭乘这趟公交。
输入示例
START 3
100 200 300
400 500 600
700 800 900
1000
END
START 3
100 200 300 4 3 2 4 2 22
800
10 1000
32767
END
ENDOFINPUT
输出示例
200
20
来源
2002 年美国中南部地区竞赛