我有一个思路,不过不知道合不合理

。把题目理解成一个条状图,循环时,比较前几个长条面积总和减去同数量的当前长条的面积,与k的关系。
设置数组S_n,S_i是a_1到a_i的累加和。设置数组Z_n,Z_i表示a_1到a_{i-1}存不存在0,有则为1,无则为0。
从后往前遍历,for i in range(n,0,-1):
if S_{i-1} - (i-1)*a_i -k >0 则循环继续,<0则答案输出i。
=0也分情况讨论:如果a_i是0则答案为i;a_i不为0且Z_i为0,则答案为i;否则循环继续。
循环到i为1时,那结果就只能是1。
总的时间复杂度O(n),空间复杂度O(n)。