CF2042F.Two Subarrays
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个长度为 n 的整数数组 a 和 b。
我们定义子数组 [l,r] 的代价为 al+al+1+⋯+ar+bl+br。如果 l=r,那么代价计算为 al+2⋅bl。
你需要执行以下三种类型的查询:
- "1 p x" — 把 ap 更新为 x;
- "2 p x" — 把 bp 更新为 x;
- "3 l r" — 在区间 [l,r] 内找到两个不相交且非空的子数组,使它们的总代价最大,并输出这个总代价。
输入格式
第一行是一个整数 n,表示数组的长度(2≤n≤2⋅105)。
第二行是 n 个整数,分别表示数组 a 的元素:a1,a2,…,an(每个 ai 满足 −109≤ai≤109)。
第三行是 n 个整数,分别表示数组 b 的元素:b1,b2,…,bn(每个 bi 满足 −109≤bi≤109)。
第四行是一个整数 q,表示查询的数量(1≤q≤2⋅105)。
接下来的 q 行,每行一个查询,可能是以下三种之一:
- "1 p x":更新 a 数组的第 p 个元素为 x;
- "2 p x":更新 b 数组的第 p 个元素为 x;
- "3 l r":在区间 [l,r] 找到两个不重叠且非空的子数组,使它们的总代价最大,并输出该代价。
可以保证至少存在一个第三种类型的查询。
输出格式
对于每一个第三种类型的查询,输出在区间 [l,r] 内的两个不相交且非空子数组的最大可能总代价。
本翻译由 AI 自动生成
输入输出样例
输入#1
7 3 -1 4 -3 2 4 0 0 6 1 0 -3 -2 -1 6 3 1 7 1 2 0 3 3 6 2 5 -3 1 3 2 3 1 5
输出#1
18 7 16
输入#2
10 2 -1 -3 -2 0 4 5 6 2 5 2 -4 -5 -1 6 2 5 -6 4 2 10 3 6 7 1 10 -2 3 5 7 3 2 8 2 1 -5 2 7 4 3 1 3 3 3 8 3 2 3 1 4 4
输出#2
23 28 28 -17 27 -22
输入解题思路,AI测评打分。不知道怎么写?