题目描述
小周猪猪是一个肥肥可爱萌萌哒的小猪,在中华猪民共和国享有超高人气。现在是一年一度的猪猪生日,小周猪猪决定发放 n n n 个名额给它的粉丝参加小周猪猪的生日Party:每一份参加的猪都有机会给小周猪猪送礼物。
现在有 n n n个粉丝,分别排成一排,每一个粉丝上都有一个对小周猪猪的喜爱值,且范围是 [ 1 , n ] [1,n] [1,n] ,规定每一个粉丝的喜爱值两两不相同。已知有m次送礼物的活动,每一次的送礼物过程如下:
- 每一次小周猪猪会随机报出一个 [ 1 , n ] [1,n] [1,n] 中的任意数字 k k k,那么每一个编号 ≤ k ≤k ≤k 的幸运粉丝都可以离开原始列队,进入小周猪猪的小房子送给小周猪猪价值一个亿的礼物。
- 送完礼物以后,这些人会按照从小到大的顺序重新回到队列中,填补队列中空缺的位置。
- 最后,每一个粉丝都会向右看其它的小猪,对于位置 i i i 的小猪,和位置 j j j 的小猪,若满足 i < j i<j i<j ,且 a i > a j a_i>a_j ai>aj ,那么就会产生 g j g_j gj 的怨气值, g i g_i gi 值表示队列中位置 i i i所对应的系数。每一次的总怨气值为所有怨气值之和。
现在,我们需要知道初始怨气值和每一次送礼物结束以后的怨气值。没错,这是小周猪猪对你的考验;当你完成了这个考验的时候,你也会拥有和粉丝一样的幸运待遇:给小周猪猪送礼物 a n d and and买很多很多好吃的给小周猪猪的机会哦!
输入格式
第一行:一个数
n
n
n,表示粉丝数。一个数
m
m
m,表示送礼物次数。
第二行:一共有
n
n
n个数,第
i
i
i个数为
a
i
a_i
ai,表示粉丝的喜爱值。
第三行:一共有
n
n
n个数,第
i
i
i个数为
g
i
g_i
gi,表示位置i的系数。
接下来
m
m
m行:每一行都是小周猪猪的报出的数字。
输出格式
第一行:一个数,表示初始怨气值。
接下来
m
m
m行:每行一个数,表示每一次送礼物以后的怨气值之和。
输入样例1
5 5
5 3 2 4 1
43 23 24 5 77
1
2
3
4
5
输入样例2
384
384
307
206
129
0
数据规模与约定
对于 30 % 30\% 30%的数据,保证 n ≤ 100 n≤100 n≤100.
对于另外 30 % 30\% 30%的数据,保证 m ≤ 5 m\leq 5 m≤5.
对于 100 % 100\% 100%的数据,保证:
- 1 ≤ n , m ≤ 3 , 000 , 000 1≤n,m≤3,000,000 1≤n,m≤3,000,000.
- a i a_i ai为 1 − n 1-n 1−n的排列.
- 1 ≤ g i ≤ 100 , 000 , 000 1≤g_i≤100,000,000 1≤gi≤100,000,000
题解
举个例子,如果是4 2 1 5 3,如果小周猪猪报出的是3,那么就会变成4 1 2 5 3.
此时1 2 3不会有任何的贡献。
根据特性我们就发现当某一个数x排序时,小于等于x的数都没有贡献,计算大于这个数的贡献即可。
由于询问此时比较多,记录最大值,再用一个后缀和记录一下即可。
时间复杂度:O(nlogn).