#train26csps004D. 一路绿灯

    ID: 823 传统题 文件IO:green 3000ms 512MiB 尝试: 24 已通过: 3 难度: 6 上传者: 标签>动态规划状态归并离散化线段树

一路绿灯

一路绿灯

题目描述

小灰灰要沿着一条道路从起点开车到终点,途中依次经过 nn 盏交通灯.从起点到第 11 盏灯的行驶时间为 d1d_1,从第 i−1i-1 盏灯到第 ii 盏灯的行驶时间为 did_i(2≤i≤n2\le i\le n),从第 nn 盏灯到终点的行驶时间为 dn+1d_{n+1}.

所有交通灯的周期都是 PP 秒,但绿灯持续的时间可以不同.对于任意非负整数时刻 tt,第 ii 盏灯的状态为:

  • 当 0≤t mod P<gi0\le t\bmod P<g_i 时,为绿灯;
  • 当 gi≤t mod P<Pg_i\le t\bmod P<P 时,为红灯.

车辆到达一盏灯时,如果是绿灯,就立即通过;如果是红灯,就停下来,等到这盏灯下一次变为绿灯时立即通过.通过交通灯本身不需要时间.特别地,gi=Pg_i=P 表示这盏灯始终为绿灯.

小灰灰有 qq 个出发方案,第 jj 个方案是在时刻 tjt_j 从起点出发.车辆在各段道路上的行驶时间固定,除了等待红灯之外不会停留.不同方案互不影响,请分别求出每个方案到达终点的时刻.

输入格式

第一行包含三个整数 n,q,Pn,q,P,分别表示交通灯数量、出发方案数量和交通灯的周期.

第二行包含 n+1n+1 个整数 d1,d2,…,dn+1d_1,d_2,\ldots,d_{n+1},表示各段道路的行驶时间.

第三行包含 nn 个整数 g1,g2,…,gng_1,g_2,\ldots,g_n,表示每盏灯在一个周期内的绿灯持续时间.

接下来 qq 行,每行包含一个整数 tjt_j,表示第 jj 个方案的出发时刻.

输出格式

输出 qq 行,每行包含一个整数,依次表示各个方案到达终点的时刻.

样例 1

输入

2 3 5
2 2 1
3 1
0
1
5

输出

6
11
11

解释

  • 时刻 00 出发:在时刻 22 到达第 11 盏灯,直接通过;在时刻 44 到达第 22 盏灯,等待到时刻 55,最后在时刻 66 到达终点.
  • 时刻 11 出发:在时刻 33 到达第 11 盏灯,此时已经是红灯,等待到时刻 55;在时刻 77 到达第 22 盏灯,等待到时刻 1010,最后在时刻 1111 到达终点.
  • 时刻 55 出发:在时刻 77 到达第 11 盏灯,直接通过;在时刻 99 到达第 22 盏灯,等待到时刻 1010,最后在时刻 1111 到达终点.

下发样例

  • Data/sample1.in 与 Data/sample1.ans:题面中的样例.
  • Data/sample2.in 与 Data/sample2.ans:n=q=2000n=q=2000,满足子任务 11.
  • Data/sample3.in 与 Data/sample3.ans:n=2×105n=2\times 10^5,q=20q=20,满足子任务 22.
  • Data/sample4.in 与 Data/sample4.ans:n=q=2×105n=q=2\times 10^5,P=50P=50,满足子任务 33.
  • Data/sample5.in 与 Data/sample5.ans:n=q=2×105n=q=2\times 10^5,满足子任务 44.
  • Data/sample6.in 与 Data/sample6.ans:n=q=2×105n=q=2\times 10^5,该样例无特殊限制.
  • Data/sample7.in 与 Data/sample7.ans:n=q=2×105n=q=2\times 10^5,该样例无特殊限制.

数据规模与约定

对于所有数据,保证:

  • 1≤n,q≤2×1051\le n,q\le 2\times 10^5;
  • 1≤P≤1091\le P\le 10^9;
  • 1≤di≤1091\le d_i\le 10^9(1≤i≤n+11\le i\le n+1);
  • 1≤gi≤P1\le g_i\le P(1≤i≤n1\le i\le n);
  • 0≤tj≤10120\le t_j\le 10^{12}(1≤j≤q1\le j\le q);
  • 输入中的所有数均为整数.

本题采用捆绑测试.只有通过某个子任务的全部测试点,才能获得该子任务的分数.

子任务编号 分数 附加限制
11 2020 n,q≤2000n,q\le 2000
22 1515 q≤20q\le 20
33 2020 P≤50P\le 50
44 1515 对所有 1≤i≤n+11\le i\le n+1,did_i 均为 PP 的倍数
55 3030 无

大样例下载

点击下载本题选手目录