现在有一个非负数组h1,h2.....hn,最多可以对它进行k次以下操作:h1每加1,hn-1,即将hn的值转移1个单位到第一个数。若hn为0,继续对hn的前一个数字进行操作,直至操作k次,最终保证第一个数最大。输出操作后的数组
输入 n k
h1 h2
输出 m1 m2
示例:
输入 2 7
1 0
输出 1 0
输入 3 10
10 9 9
输出 20 8 0
现在有一个非负数组h1,h2.....hn,最多可以对它进行k次以下操作:h1每加1,hn-1,即将hn的值转移1个单位到第一个数。若hn为0,继续对hn的前一个数字进行操作,直至操作k次,最终保证第一个数最大。输出操作后的数组
输入 n k
h1 h2
输出 m1 m2
示例:
输入 2 7
1 0
输出 1 0
输入 3 10
10 9 9
输出 20 8 0
或者这样代码更好理解一些
n, k = input().strip().split()
n = int(n)
k = int(k)
lst = [int(v) for v in input().strip().split()]
t = len(lst)-1
while k>0 and t>0:
if lst[t]==0:
t -= 1
continue
lst[t] -=1
lst[0] +=1
k -= 1
print(*lst,sep=" ")