A41143.信奥试炼塔(tower)

普及+/提高

通过率:65.12%

时间限制:1.00s

内存限制:128MB

题目描述

在ACGO编程平台中,有一座神秘的“信奥试炼塔”,塔内设有一条线性分布的算法节点,依次编号为 11nn。每个节点都隐藏着能量水晶和能量消耗机制。

现在,一名勇敢的挑战者(你可以从塔中的任意一个节点出发)准备在试炼塔中探索。当你从一个节点转移到下一个节点时,只能前往与其相邻的节点。并且,第一次经过该节点时,你会从节点的能量水晶中获得 viv_i 单位的能量奖励;然而,每次经过这个节点,都会同时消耗 lil_i 单位的能量(无论是否是首次经过)。对于出发的节点而言,一开始即视为经过该节点。

你的任务是:分别以塔中的 11nn 号节点作为起点,计算在该节点出发、并允许在相邻节点之间左右移动的情况下,能够获得的最大剩余能量。

输入格式

输入包含三行。

  • 第 1 行:一个整数 nn,表示节点总数。
  • 第 2 行:包含 nn 个整数,表示数组 vv,其中 viv_i 为第 ii 个节点的能量奖励。
  • 第 3 行:包含 nn 个整数,表示数组 ll,其中 lil_i 为第 ii 个节点的能量消耗。

输出格式

输出共 nn 个整数,第 ii 个整数表示当出发节点为 ii 时,在试炼塔允许左右移动的前提下,能够获得的最大剩余能量。

输入输出样例

  • 输入#1

    5
    6 1 1 3 4
    1 1 2 1 1

    输出#1

    9 8 6 8 9

说明/提示

数据范围

  • 对于 10%10\% 的数据,n2n \le 2
  • 对于 30%30\% 的数据,n<200n \lt 200
  • 对于 70%70\% 的数据,n<2000n \lt 2000
  • 对于 100%100\% 的数据,0<n1000000 < n \le 1000000vi,li1090 \le v_i, l_i \le 10^9

说明

  • “左右移动”即只能在相邻节点之间来回走动(例如从节点 ii 移动到 i1i-1i+1i+1,条件是对应节点在有效范围 [1,n][1, n] 内)。
  • 出发节点也会在一开始被视为“经过”一次,所以立刻获得 viv_i,并同时消耗 lil_i
  • 需要分别给出从每个节点(1 到 nn)出发时的最大剩余能量。
首页