AT_kupc2020_e.Sequence Partitioning
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定三个长度为 N 的整数数列 A=(a0,…,aN−1)、B=(b0,…,bN−1)、C=(c0,…,cN−1),其中每个元素都在 −109 到 109 之间。
现在,考虑将数列 A 分割成若干个连续的子序列。一次分割可以用满足以下 3 个条件的整数序列 D=(d0,…,dr) 来表示:
- d0=0。
- dr=N。
- 对于 0≤i<r,有 di<di+1。
也就是说,每个 i 对应的区间 [di,di+1) 表示一个连续区间,整个数列被这 r 个区间完全覆盖且不重叠。
对于一次分割 D,定义其得分函数 f 如下:
f(D)=0≤i<rmin⎩⎨⎧bdi+cdi+1−1+di≤j<di+1∑aj⎭⎬⎫
请你选择一种分割方式,使得 f 的值最大,并输出该最大值。
输入格式
输入通过标准输入给出,格式如下:
N a0 a1 ⋯ aN−1 b0 b1 ⋯ bN−1 c0 c1 ⋯ cN−1
输出格式
请输出一行答案。
输入输出样例
输入#1
2 1 -1 -1 4 1 -2
输出#1
1
输入#2
1 1000000000 1000000000 1000000000
输出#2
3000000000
输入#3
11 -323225375 -897098227 -795978453 501188072 409939326 -362890219 969123048 962633819 252457646 694824070 -406990840 -696821643 -663750226 -570551722 670541392 172964990 399404695 -305728788 -157617655 -801518744 -328729631 -160335217 -465411342 -660775657 515997870 -34787742 628368976 84800619 -728713779 573207953 115652694 -686953578 -215986240
输出#3
91174984
说明/提示
限制条件
- 所有输入均为整数。
- 1≤N≤2×105。
- −109≤ai,bi,ci≤109 (0≤i<N)。
样例解释 1
当 D=(0,2) 时,得分为 b0+c1+a0+a1=−3。当 D=(0,1,2) 时,得分为 min(b0+c0+a0,b1+c1+a1)=min(1,1)=1。
样例解释 2
请注意防止溢出。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?