题目描述
超市里通常有专门的一区卖水果。
兔子 Benson 常去的超市一共有 N 个柜台用来卖 N 种水果。柜台编号从 1∼N,水果编号从 1∼N。第 i 种水果的美味度是 i,购买需要花费 Ci 元。保证对于所有的 1≤i<j≤N,有 Ci≤Cj。
每一个柜台都只买一种水果,每一种水果都有且仅有一个柜台售卖。现在,工作人员规定了每个柜台卖哪一种水果。第 i 个柜台卖第 Ai 种水果。如果 Ai=−1,则表示这个柜台还没有确定卖什么。
当所有柜台的水果都摆放好,Benson 就会进店抢购。他会按照 1∼N 的顺序去这些柜台。当他到了一个柜台,如果他的购物车里还是空的,或当前柜台水果的美味度大于所有他购物车里的水果,那么他就会购买这种水果,将其放进购物车中。
现在你需要让商店赚到最多的钱。你需要计算怎么来摆放那些 Ai=−1 的柜台使得利润最大化。由于 Benson 很赶时间,他可能不会逛完所有柜台,所以你需要对于所有的 1≤k≤N 计算如果 Benson 只逛第 1∼k 个柜台,那么这些柜台应该如何摆放最优。
输入格式
第一行,一个正整数 N;
第二行 N 个整数,表示 Ai;
第三行 N 个整数,表示 Ci。
输出格式
一行 N 个整数,第 k 个表示如果 Benson 只逛前 k 个柜台且水果按照最优方案摆放,商店可获得的最大钱数。
提示
【数据范围】
Subtask |
分值 |
特殊性质 |
0 |
样例 |
1 |
6 |
N≤8 |
2 |
5 |
对于所有 1≤j≤N,Aj=−1 |
3 |
11 |
N≤200 |
4 |
13 |
N≤2000 |
5 |
23 |
对于所有 1≤j≤N,Cj=1 |
6 |
42 |
无 |
对于 100% 的数据,1≤N≤400000,1≤Aj≤N 或 Aj=−1,1≤Ci≤109。