#P1427. Get Them All
Get Them All
本题没有可用的提交语言。
描述
为了确保参赛者能够轻松到达区域比赛场地,组委会准备了一些机器人驾驶的车辆。这些车辆将访问预先确定的个路口,并将在那里等待的参赛者运送到比赛场地。有一个计算机控制的运输中心(TC),负责确定每辆车的座位数量以及每辆车首次离开比赛场地的时间。
当需要一辆新车时,会向TC发出请求。每辆新车的座位数都比上一辆少(如果上一辆的座位数大于3):第辆车的座位数为()。第一辆车在早上8:00准时离开比赛场地。当TC收到新车的请求时,它会准备一辆新车,并在收到请求后的2秒内让新车离开比赛场地。如果同时收到多个请求,只会处理其中一个。
在路口,每辆车会执行以下任务。如果多辆车同时到达路口,则按它们的服务时间顺序执行任务:服务时间最长的车辆优先。车辆的服务时间是当前时间与该车辆首次离开比赛场地(即路口0)的时间差。
- 如果(比赛场地),车上的所有参赛者下车。否则,车辆尽可能多地搭载参赛者(即直到车辆满载或路口没有剩余参赛者)。
- 如果之后路口()仍有参赛者剩余,车辆会向TC发送请求一辆新车的请求。
- 最后,车辆开始前往下一个路口,由机器人驾驶员按以下方式选择(即使在路口0):
- 如果车辆已满载,则。
- 否则,如果之前没有其他车辆离开过路口,则。
- 否则,为(如果不等于)。
- 否则,为。
(其中,是上一辆离开路口的车辆选择的“下一个路口”。)
车辆的上述3个任务瞬间完成(即耗时0秒)。已知从一个路口到另一个路口的行驶时间。所有参赛者在早上8:00前到达合适的路口,并在被车辆接走前不会离开。给定每个路口等待的参赛者数量和时间限制,你需要确定所有参赛者到达比赛场地的时间,或者在时间限制内到达比赛场地的参赛者数量。
输入
输入包含多个数据集。每个数据集包含以下内容:
第一行是数据集的名称(由2到20个字母数字字符组成)。
第二行是3个正整数、和()。
接下来的行,每行包含个整数。第行()表示从路口到其他路口(除外)的行驶时间(秒),顺序为0, 1, 2, ..., 。
接下来的行,每行包含一个非负整数。第行()表示路口等待的参赛者数量。
数据集的最后一行是时间限制(秒,小于10000000)。
每行的整数之间用一个空格分隔。参赛者总数不超过1000。
输入以一行“TheEnd”结束。
输出
对于每个数据集,输出两行。第一行是数据集的名称。第二行是如果所有参赛者在时间限制内到达比赛场地所需的时间(秒),否则输出在时间限制内到达比赛场地的参赛者数量(参见样例输出)。
输入数据 1
Dhaka2000
3 22 4
30 8
10 30
28 8
20
20
100
Dhaka2001
3 22 4
30 8
10 30
28 8
20
20
90
Dhaka2002
3 22 2
30 8
10 30
28 8
20
20
100
TheEnd
输出数据 1
Dhaka2000
98 seconds needed
Dhaka2001
22 contestants reached
Dhaka2002
88 seconds needed
来源
Dhaka 2002