题意:给出一个长度 n 的序列,最多可以有 k 次操作,每次选择一个一个最大的减1,最小的加1,然后问在最多k次操作之后的最小差值。
很简单,练习一下python语法
n,k = map(int,raw_input().split()) l = map(int,raw_input().split()) ans = [] i = 0 while i<k: if(max(l) - min(l)>0): #取最大值 a,b = l.index(max(l)),l.index(min(l)) #最大值的位置 l[a]-=1 l[b]+=1 i+=1 ans.append([a+1,b+1]) else: break print max(l)-min(l),len(ans) for i in ans: print i[0],i[1]
顺便上一下C题的代码简单的排序:
n = input() l = [] for i in range(n): a,b = map(int,raw_input().split()) l.append([a,b]) l.sort() ans = 0 for i in l: re = min(i) if re>=ans:ans = re else: ans = max(i) print ans
时间: 2024-10-07 00:01:40