CF1249E.By Elevator or Stairs?
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are planning to buy an apartment in a n-floor building. The floors are numbered from 1 to n from the bottom to the top. At first for each floor you want to know the minimum total time to reach it from the first (the bottom) floor.
Let:
- ai for all i from 1 to n−1 be the time required to go from the i-th floor to the (i+1)-th one (and from the (i+1)-th to the i-th as well) using the stairs;
- bi for all i from 1 to n−1 be the time required to go from the i-th floor to the (i+1)-th one (and from the (i+1)-th to the i-th as well) using the elevator, also there is a value c — time overhead for elevator usage (you need to wait for it, the elevator doors are too slow!).
In one move, you can go from the floor you are staying at x to any floor y (x=y) in two different ways:
- If you are using the stairs, just sum up the corresponding values of ai. Formally, it will take i=min(x,y)∑max(x,y)−1ai time units.
- If you are using the elevator, just sum up c and the corresponding values of bi. Formally, it will take c+i=min(x,y)∑max(x,y)−1bi time units.
You can perform as many moves as you want (possibly zero).
So your task is for each i to determine the minimum total time it takes to reach the i-th floor from the 1-st (bottom) floor.
你计划在一座 n 层的楼房中购买一套公寓。楼层从下到上编号为 1 到 n。最初,你希望对每一层楼,计算出从第 1 层(最底层)到达该层所需的最少总时间。
定义:
- 对于所有 i 从 1 到 n−1,ai 表示使用楼梯从第 i 层前往第 (i+1) 层(以及从第 (i+1) 层返回第 i 层)所需的时间;
- 对于所有 i 从 1 到 n−1,bi 表示使用电梯从第 i 层前往第 (i+1) 层(以及从第 (i+1) 层返回第 i 层)所需的时间;此外还有一个常数 c —— 电梯使用的时间开销(需等待电梯、电梯门开关过慢等)!
一次移动中,你可以从当前所在楼层 x 前往任意其他楼层 y(x=y),方式有两种:
- 若使用楼梯,则只需累加对应的 ai 值。形式化地,所需时间为 i=min(x,y)∑max(x,y)−1ai 个时间单位;
- 若使用电梯,则需累加 c 及对应的 bi 值。形式化地,所需时间为 c+i=min(x,y)∑max(x,y)−1bi 个时间单位。
你可以执行任意多次(包括零次)移动。
因此,你的任务是对每个 i,求出从第 1 层(最底层)到达第 i 层所需的最少总时间。
输入格式
The first line of the input contains two integers n and c (2≤n≤2⋅105,1≤c≤1000) — the number of floors in the building and the time overhead for the elevator rides.
The second line of the input contains n−1 integers a1,a2,…,an−1 (1≤ai≤1000), where ai is the time required to go from the i-th floor to the (i+1)-th one (and from the (i+1)-th to the i-th as well) using the stairs.
The third line of the input contains n−1 integers b1,b2,…,bn−1 (1≤bi≤1000), where bi is the time required to go from the i-th floor to the (i+1)-th one (and from the (i+1)-th to the i-th as well) using the elevator.
输入的第一行包含两个整数 n 和 c(2≤n≤2⋅105,1≤c≤1000)—— 分别表示大楼的楼层数以及电梯运行的时间开销。
输入的第二行包含 n−1 个整数 a1,a2,…,an−1(1≤ai≤1000),其中 ai 表示使用楼梯从第 i 层前往第 (i+1) 层(或从第 (i+1) 层返回第 i 层)所需的时间。
输入的第三行包含 n−1 个整数 b1,b2,…,bn−1(1≤bi≤1000),其中 bi 表示使用电梯从第 i 层前往第 (i+1) 层(或从第 (i+1) 层返回第 i 层)所需的时间。
输出格式
Print n integers t1,t2,…,tn, where ti is the minimum total time to reach the i-th floor from the first floor if you can perform as many moves as you want.
输出 n 个整数 t1,t2,…,tn,其中 ti 表示从第 1 层到达第 i 层所需的最小总时间(允许执行任意多次移动)。
输入输出样例
输入#1
10 2 7 6 18 6 16 18 1 17 17 6 9 3 10 9 1 10 1 5
输出#1
0 7 13 18 24 35 36 37 40 45
输入#2
10 1 3 2 3 1 3 3 1 4 1 1 2 3 4 4 1 2 1 3
输出#2
0 2 4 7 8 11 13 14 16 17
输入解题思路,AI测评打分。不知道怎么写?