codeforces 479B. Towers C - Exams【排序】
题意:给出一个长度 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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。