矿车在硐口 i 接通后才改道,下一站直接去卸矿平台,剩下的路程就是该硐口到平台的 si。值班员同时出发,要走 t。两边从同一时刻开始计时,等待时间就是矿石更晚到的那一段。
矿区调度中心今晚要核对一次联调记录。值班员需要算出:矿车若在某个硐口才接到改道指令,自己走到卸矿口之后,还要在门口等多久。
矿车原计划依次经过 k 个硐口,编号 1∼k,其中第 k 个硐口一定是卸矿平台。地图给出这 k 个硐口到卸矿平台的路程依次为 s1,s2,…,sk−1,0。预案里硐口顺序不一定按路程从远到近排列,所以 s 不一定单调。
矿车只会在抵达某个硐口时接通调度电话,挂断之后才继续上路。若此时还没到卸矿平台,调度会把下一站改成卸矿平台,矿石再走 si 个单位路程即可卸完。经过 1 个单位路程恰好耗时 1 个单位时间。值班员挂断电话后还要走 t 个单位时间才能到卸矿口。
请对每一个可能的接通位置 i(1≤i≤k)算出值班员到门口后还要等待的时间。若矿石在值班员走到门口之前就已经卸完,等待记为 0。
硐口个数 k 满足 1≤k≤ 100000,值班员步行时间 t 满足 0≤t≤ 1000000000。前 k−1 个硐口的路程满足 1≤si≤ 1000000000,且 sk=0。
第一行两个整数 k、t(1≤k≤ 100000,0≤t≤ 1000000000),表示硐口个数和值班员挂断后走到卸矿口的时间。
第二行 k 个整数 s1,s2,…,sk,其中前 k−1 个数满足 1≤si≤ 1000000000,最后一个数一定是 0。
输出一行 k 个整数,依次表示矿车在第 1,2,…,k 个硐口接通时,值班员到门口后还要等待的时间。
输入
4 0
5 3 8 0
输出
5 3 8 0
说明
值班员挂断后立刻就在门口(t=0),等待时间就是各硐口到卸矿平台的路程。
输入
4 4
7 2 10 0
输出
3 0 6 0
说明
1 接通:矿石再走 7,值班员走 4,还需等待 7−4=3。2 接通:矿石再走 2,小于 4,等待为 0。3 接通:矿石再走 10,还需等待 6。4 接通:已经停在卸矿平台,等待为 0。输入
1 100
0
输出
0
说明
只有卸矿平台这一处,接通时矿石已经到位,等待为 0。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.