#NOIp402. 风与牧歌的城邦(mondstadt)

风与牧歌的城邦(mondstadt)

题目描述

给定序列 {ana_n},{bnb_n},保证 a1,a2,...,ana_1,a_2,...,a_n 两两不同。

对于 1lrn∀1≤l≤r≤n,定义区间 [l,r][l,r] 的权值如下:设 ap=maxap=max{al,al+1,...,ara_l,a_{l+1},...,a_r},则 [l,r][l,r] 的权值为 bpb_p

你需要将 1n1∼n 划分为若干段,求每一段的权值之和的最大值。

输入格式

从文件 mondstadt.inmondstadt.in 中读入数据。

第一行一个正整数 nn

第二行 nn 个正整数 a1,a2,...,ana_1,a_2,...,a_n

第三行 nn 个正整数 b1,b2,...,bnb_1,b_2,...,b_n

输出格式

输出到文件 mondstadt.outmondstadt.out 中。

一行一个整数表示答案。

样例 1 输入

5
3 4 2 5 1
3 -4 0 2 -5

样例 1 输出

5

样例 2

见右侧文件下的 mondstadt2.inmondstadt2.inmondstadt2.ansmondstadt2.ans

数据范围与提示

对于所有测试数据,保证 1n5×1051ain109bi1091≤n≤5×10^5,1≤a_i≤n,−10^9≤b_i≤10^9,保证 a1,a2,...,ana_1,a_2,...,a_n1n1∼n 的一个排列。

每个测试点的具体限制见下表:

测试点编号 nn≤
121∼2 10
363∼6 1000
7127∼12 5×1045×10^4
3203∼20 5×1055×10^5