CF1334F.Strange Function
省选/NOI-
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Let's denote the following function f. This function takes an array a of length n and returns an array. Initially the result is an empty array. For each integer i from 1 to n we add element ai to the end of the resulting array if it is greater than all previous elements (more formally, if ai>1≤j<imaxaj). Some examples of the function f:
- if a=[3,1,2,7,7,3,6,7,8] then f(a)=[3,7,8];
- if a=[1] then f(a)=[1];
- if a=[4,1,1,2,3] then f(a)=[4];
- if a=[1,3,1,2,6,8,7,7,4,11,10] then f(a)=[1,3,6,8,11].
You are given two arrays: array a1,a2,…,an and array b1,b2,…,bm. You can delete some elements of array a (possibly zero). To delete the element ai, you have to pay pi coins (the value of pi can be negative, then you get ∣pi∣ coins, if you delete this element). Calculate the minimum number of coins (possibly negative) you have to spend for fulfilling equality f(a)=b.
我们定义如下函数 f。该函数接收一个长度为 n 的数组 a,并返回一个数组。初始时结果数组为空。对于每个从 1 到 n 的整数 i,若 ai 大于所有前面的元素(更严格地说,若 ai>1≤j<imaxaj),则将元素 ai 添加到结果数组末尾。函数 f 的一些示例如下:
- 若 a=[3,1,2,7,7,3,6,7,8],则 f(a)=[3,7,8];
- 若 a=[1],则 f(a)=[1];
- 若 a=[4,1,1,2,3],则 f(a)=[4];
- 若 a=[1,3,1,2,6,8,7,7,4,11,10],则 f(a)=[1,3,6,8,11]。
给定两个数组:数组 a1,a2,…,an 和数组 b1,b2,…,bm。你可以删除数组 a 中的若干元素(也可以不删)。删除元素 ai 需花费 pi 枚金币(注意 pi 可能为负数;此时你将获得 ∣pi∣ 枚金币)。请计算为使等式 f(a)=b 成立所需花费的最少金币数(该值可能为负数)。
输入格式
The first line contains one integer n (1≤n≤5⋅105) — the length of array a.
The second line contains n integers a1,a2,…,an (1≤ai≤n) — the array a.
The third line contains n integers p1,p2,…,pn (∣pi∣≤109) — the array p.
The fourth line contains one integer m (1≤m≤n) — the length of array b.
The fifth line contains m integers b1,b2,…,bm (1≤bi≤n,bi−1<bi) — the array b.
第一行包含一个整数 n (1≤n≤5⋅105) —— 数组 a 的长度。
第二行包含 n 个整数 a1,a2,…,an (1≤ai≤n) —— 数组 a。
第三行包含 n 个整数 p1,p2,…,pn (∣pi∣≤109) —— 数组 p。
第四行包含一个整数 m (1≤m≤n) —— 数组 b 的长度。
第五行包含 m 个整数 b1,b2,…,bm (1≤bi≤n,bi−1<bi) —— 数组 b。
输出格式
If the answer exists, in the first line print YES. In the second line, print the minimum number of coins you have to spend for fulfilling equality f(a)=b.
Otherwise in only line print NO.
如果答案存在,在第一行输出 YES。在第二行输出满足等式 f(a)=b 所需花费的最少硬币数量。
否则,仅在一行中输出 NO。
输入输出样例
输入#1
11 4 1 3 3 7 8 7 9 10 7 11 3 5 0 -2 5 3 6 7 8 2 4 3 3 7 10
输出#1
YES 20
输入#2
6 2 1 5 3 6 5 3 -9 0 16 22 -14 4 2 3 5 6
输出#2
NO
输入解题思路,AI测评打分。不知道怎么写?