本题没有可用的提交语言。
题目描述
给定 n 个整数 a1,a2,…,an,0≤ai≤n,以及 n 个整数 w1,w2,…,wn。称 a1,a2,…,an 的一个排列 ap1,ap2,…,apn 为 a1,a2,…,an 的一个合法排列,当且仅当该排列满足:对于任意的 k 和任意的 j,如果 j≤k,那么 apj 不等于 pk。(换句话说就是:对于任意的 k 和任意的 j,如果 pk 等于 apj,那么 k<j。)定义这个合法排列的权值为 wp1+2wp2+⋯+nwpn。
你需要求出在所有合法排列中的最大权值。如果不存在合法排列,输出 −1。
样例解释中给出了合法排列和非法排列的实例。
输入格式
第一行一个整数 n。
接下来一行 n 个整数,表示 a1,a2,…,an。接下来一行 n 个整数,表示 w1,w2,…,wn。
输出格式
输出一个整数表示答案。
3
0 1 1
5 7 3
32
3
2 3 1
1 2 3
-1
10
6 6 10 1 7 0 0 1 7 7
16 3 10 20 5 14 17 17 16 13
809
提示
【样例解释 1】
对于 a1=0,a2=1,a3=1,其排列有:
- a1=0,a2=1,a3=1,是合法排列,排列的权值是 1×5+2×7+3×3=28;
- a2=1,a1=0,a3=1,是非法排列,因为 ap2 等于 p2;
- a1=0,a3=1,a2=1,是合法排列,排列的权值是 1×5+2×3+3×7=32;
- a3=1,a1=0,a2=1,是非法排列,因为 ap1 等于 p2;
- a2=1,a3=1,a1=0,是非法排列,因为 ap1 等于 p3;
- a3=1,a2=1,a1=0,是非法排列,因为 ap1 等于 p3。
因此该题输出最大权值 32。
【样例解释 2】
对于 a1=2,a2=3,a3=1,其排列有:
- a1=2,a2=3,a3=1,是非法排列,因为 ap1 等于 p2;
- a2=3,a1=2,a3=1,是非法排列,因为 ap1 等于 p3;
- a1=2,a3=1,a2=3,是非法排列,因为 ap1 等于 p3;
- a3=1,a1=2,a2=3,是非法排列,因为 ap2 等于 p3;
- a2=3,a3=1,a1=2,是非法排列,因为 ap2 等于 p3;
- a3=1,a2=3,a1=2,是非法排列,因为 ap1 等于 p3。
因此该题没有合法排列。
【数据范围】
- 对于前 20% 的数据,1≤n≤10。
- 对于前 40% 的数据,1≤n≤15。
- 对于前 60% 的数据,1≤n≤1000。
- 对于前 80% 的数据,1≤n≤105。
- 对于 100% 的数据,1≤n≤5×105,0≤ai≤n,1≤wi≤109,所有 wi 的和不超过 1.5×1013。