#P51162. 「COI 2019」SEGWAY

「COI 2019」SEGWAY

题目描述

译自 COI 2019 T3「SEGWAY

在杜布罗夫尼克举行了一次平衡车比赛。赛道包含三段,每段长 100100 米,即,赛道总长是 300300 米。基于选手平衡车的电池限制,每个选手都有一个策略:在第一段上的速度,在第二段上的速度和在第三段上的速度,除非允许加速到最大速度(具体操作会在下一段解释)。遗憾的是,平衡车很慢,它们的速度在 115050 秒每米之间。因此,题目中速度单位为秒每米(而不是米每秒)。

在赛道沿途有一些加速点(放置加速器)。当选手到达加速点处时,他的平衡车就会获得额外的能量,可以以 11 秒每米的速度行驶 Xmod20X\bmod 20 米,这里 XX 是在他到达加速点处时,严格在他前面的人数(包含已到达终点的人)。选手不能在额外获得的能量用尽之前使用加速器。额外的能量用尽时,如果没有新的加速器,他将按原定速度继续行驶。

假设选手有能用的加速器就会用,即使不是最优的。一个加速器可以被多人同时使用,并且不会使用后不会失效。你的任务是模拟这次比赛。假设所有选手同时出发,输出他们到达终点所用的时间。

输入格式

第一行包含一个整数 NN,表示选手数;

接下来 NN 行,分别描述选手的策略,每行包含一个范围在 [1,50][1,50] 的整数,分别表示在第一段,第二段和第三段的速度;

接下来一行一个整数 MM,表示加速器个数;

如果 M>0M>0,接下来一行有 MM 个范围在 [1,299][1,299] 的整数,表示每个加速器到起点的距离。距离按严格递增的顺序给出。

输出格式

输出 NN 行,每行一个整数,第 ii 行输出第 ii 名选手到达终点的用时。

样例 1

2
1 2 3
4 5 6
0
600
1500

因为没有加速器,所以所有选手按原定速度进行比赛。

3
5 5 5
6 2 10
10 9 2
2
100 199
1496
1799
2075

第一名选手不会使用第一个加速器(因为在他前面没有选手),但是他会使用第二个加速器,因为第二名选手在此时超过了他。总得来说,第一名选手以 55 秒每米的速度行驶了 299299 米,以 11 秒每米的速度行驶了 11 米。

第二名选手会使用第一个加速器(他前面有一名选手),但是他不会使用第二个加速器。总得来说,第二名选手以 66 秒每米的速度行驶了 100100 米,以 11 秒每米的速度行驶了 11 米,以 22 秒每米的速度行驶了 9999 米,以 1010 秒每米的速度行驶了 100100 米。

第三名选手在两个加速器处均会以 11 秒每米的速度行驶 22 米。总得来说,第三名选手以 1010 秒每米的速度行驶了 100100 米,以 11 秒每米的速度行驶了 22 米,以 99 秒每米的速度行驶了 9797 米,以 11 秒每米的速度行驶了 22 米,以 22 秒每米的速度行驶了 9999 米。

5
2 2 2
6 6 6
8 8 8
9 9 9
10 10 10
2
297 298
600
1790
2386
2676
2973

两个加速器离终点都很近。第一名选手不会使用任何加速器,第二名选手使用两个加速器(均加速 11 米),然后剩下最后 11 米按原速度行驶,第三名选手会使用第一个加速器(加速 22 米),然后剩下 11 米按原速度行驶。最后两名选手利用最后额外的能量加速冲线。

数据范围与提示

对于所有数据,1N2×1041\le N\le 2\times 10^4

详细子任务附加限制及分值如下表:

子任务编号 附加限制 分值
11 M=1M=1 1515
22 N300N\le 300 4040
33 无附加限制 4545