题目大意: 给你一个长度为n的数列,给你m个数k. 对于每个k,你可以进行若干次操作,每次把一个超过k的数的多余部分移到旁边一个数. 问对于每个k,进行若干次操作以后,最长的满足每个数都不小于k的区间长度. 思路: 一个区间可以通过若干次操作使得每个数都不小于k,当且仅当这个区间平均数大于等于k. 对于每个k,我们可以先O(n)求出这个序列每个数减去k的前缀和. 对于i>j,如果sum[i]>=sum[j],那么对于i之后的数,用i转移肯定比j更优. 因此我们可以维护一个关于前缀和的单调递减栈…