题目描述
你在超市里工作。
超市里有 n 个水果,第 i 个水果的美味度为 i ,价格为 ci ,并且保证 ci 单调不降。
现在要把这 n 个水果摆成一排放到货架上,第 j 个位置摆的水果是 aj 。但是你还没想好摆的顺序,所以可能会有 aj=−1 ,表示这个位置摆的水果未定。
在你决定了摆放顺序之后,一位顾客进来买水果。他会从第一个位置开始往后走,每当遇到一个美味度比之前都要高的水果时就会把它买下,直到看完第 k 个位置后离开。
你希望选择一个最优的摆放顺序,使得这位顾客出的钱最多。
但是你并不知道 k 是多少,因此你希望对每个 k 都求出答案。你对不同的 k 给出的顺序可以不同。
输入格式
第一行一个正整数 n 。
第二行 n 个整数 a1,a2,⋯,an 。
第三行 n 个正整数 c1,c2,⋯,cn 。
输出格式
输出一行 n 个正整数,表示 k=1,2,⋯,n 时的答案。
样例一
input
5 -1 3 -1 -1 -1 1 2 2 2 3
output
3 4 7 9 9
explanation
- k=1 的最优方案是把第 5 个水果放第一个位置,即令 a1=5 ,后面任意。
- k=2 的最优方案是令 a1=2 。
- k=3 的最优方案是令 a1=2,a3=5 。
- k=4 的最优方案是令 a1=2,a3=4,a4=5 。
- k=5 的最优方案是令 a1=2,a3=4,a4=5,a5=1 。
样例二
input
13 -1 -1 5 6 -1 -1 7 11 -1 -1 10 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1
output
1 2 3 4 5 6 6 7 8 9 9 9 9
样例三
input
10 -1 -1 -1 -1 5 -1 -1 -1 9 -1 5 11 24 27 35 60 72 81 91 92
output
92 173 245 305 305 332 356 367 406 498
样例四、五、六
见下发文件。
数据范围
本题采用子任务捆绑测试。
对于所有数据,保证 1≤n≤4×105,−1≤ai≤n,ai≠0,1≤ci≤109 ,a 中不存在两个相同的正整数,c 单调不降。
子任务编号 | 特殊性质 | 分值 |
---|---|---|
1 | n≤8 | 10 |
2 | a1=a2=⋯=an=−1 | 10 |
3 | n≤200 | 20 |
4 | n≤2000 | 20 |
5 | c1=c2=⋯=cn=1 | 20 |
6 | 20 |
时间限制:3s
空间限制:1024MB
提示
pjudge 缺投。