一天,小Q得到了一个包含n个数字的数组,他想对这个数组进行K次如下的操作
首先找出数组中最小的非0数字X,输出它,然后把数组中的所有非零数字都减去X;如果数组中的数字都是
0,那么直接输出0.
输入描述
第一行两个数字n和k,用一个空格分隔
第二行n个数字,每两个数字之间用一个空格分隔
满足1<=n,k<=10^5,数组中所有的数字ai满足
1<=ai<=10^9,
输出描述
k行,每行一个整数
输入
4 1
5 5 7 2
输出
2
输入
2 2
4 6
输出
4
2
def printnum(l1,l2):
n, m = l1[0], l1[1]
s=l2
s.sort()
a=[]
while m>0:
index = -1
temp = 0
for i in range(n):
if s[i] >0:
index=i
temp=s[i]
break
if index == -1:
a.append(0)
return a
else:
a.append(temp)
for j in range(index,n):
s[j] -=temp
m -= 1
return a
if __name__ == '__main__':
test1 = {'l1': [4, 1], 'l2': [5, 5, 7, 2], 'result': [2]}
test2 = {'l1': [2, 2], 'l2': [4, 6], 'result': [4 ,2]}
test = [test1,test2]
count = 0
for t in test:
if printnum(t['l1'], t['l2']) == t['result']:
count += 1
else:
print('l1:', t['l1'], '\nl2:', t['l2'], '\nOutput:', printnum(t['l1'], t['l2']), '\nExpect:',
t['result'])
print('Case通过率:', count * 100 / len(test), '%')
转载于:https://www.cnblogs.com/277223178dudu/p/10669126.html