#P1427. Get Them All

Get Them All

本题没有可用的提交语言。

描述

为了确保参赛者能够轻松到达区域比赛场地,组委会准备了一些机器人驾驶的车辆。这些车辆将访问预先确定的nn个路口,并将在那里等待的参赛者运送到比赛场地。有一个计算机控制的运输中心(TC),负责确定每辆车的座位数量以及每辆车首次离开比赛场地的时间。

当需要一辆新车时,会向TC发出请求。每辆新车的座位数都比上一辆少(如果上一辆的座位数大于3):第ii辆车的座位数为max(s(i1)t,3)\max(s-(i-1)*t, 3)i=1,2,3,i = 1, 2, 3, \dots)。第一辆车在早上8:00准时离开比赛场地。当TC收到新车的请求时,它会准备一辆新车,并在收到请求后的2秒内让新车离开比赛场地。如果同时收到多个请求,只会处理其中一个。

在路口jj,每辆车会执行以下任务。如果多辆车同时到达路口jj,则按它们的服务时间顺序执行任务:服务时间最长的车辆优先。车辆的服务时间是当前时间与该车辆首次离开比赛场地(即路口0)的时间差。

  1. 如果j=0j = 0(比赛场地),车上的所有参赛者下车。否则,车辆尽可能多地搭载参赛者(即直到车辆满载或路口jj没有剩余参赛者)。
  2. 如果之后路口jjj>0j > 0)仍有参赛者剩余,车辆会向TC发送请求一辆新车的请求。
  3. 最后,车辆开始前往下一个路口kk,由机器人驾驶员按以下方式选择(即使在路口0):
    • 如果车辆已满载,则k=0k = 0
    • 否则,如果之前没有其他车辆离开过路口jj,则k=(j+1)modnk = (j+1) \mod n
    • 否则,kk((k0+1)modn)((k_0+1) \mod n)(如果kk不等于jj)。
    • 否则,kk((k0+2)modn)((k_0+2) \mod n)
      (其中,k0k_0是上一辆离开路口jj的车辆选择的“下一个路口”。)

车辆的上述3个任务瞬间完成(即耗时0秒)。已知从一个路口到另一个路口的行驶时间。所有参赛者在早上8:00前到达合适的路口,并在被车辆接走前不会离开。给定每个路口等待的参赛者数量和时间限制,你需要确定所有参赛者到达比赛场地的时间,或者在时间限制内到达比赛场地的参赛者数量。

输入
输入包含多个数据集。每个数据集包含以下内容:

第一行是数据集的名称(由2到20个字母数字字符组成)。
第二行是3个正整数nnsstt2<n<112 < n < 11)。
接下来的nn行,每行包含n1n-1个整数。第ii行(i=1,2,3,i=1, 2, 3, \dots)表示从路口i1i-1到其他路口(除i1i-1外)的行驶时间(秒),顺序为0, 1, 2, ..., nn
接下来的n1n-1行,每行包含一个非负整数。第ii行(i=1,2,3,i=1, 2, 3, \dots)表示路口ii等待的参赛者数量。
数据集的最后一行是时间限制(秒,小于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