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