n,k = map(int,input().split(" ")) p_dict = {} for i in range(n): name,height = map(str,input().split(" ")) p_dict[name] = int(height) pai_num = n//k #计算每排人数 pai_middle = pai_num//2+1-1 #计算每排中间位置 finall_num = pai_num + n%k #计算最后一排人数 f_middle = finall_num//2+1-1 #计算最后一排中间位置 pai_list = [] pai_list.append(finall_num) for i in range(k-1): pai_list.append(pai_num) p_dict_list = sorted(p_dict.items(),key=lambda a:(-a[1],a[0])) #按身高降序排列,若多人身高相同,则按名字的字典序升序排列。 t = 0 for i in pai_list: x = 1 list1 = ["" for k in range(i)] if t == 0: list1[f_middle] = p_dict_list[t][0] middle_num = f_middle else: list1[pai_middle] = p_dict_list[t][0] middle_num = pai_middle t += 1 for j in range(int(i/2)): try: list1[middle_num-x] = p_dict_list[t][0] t += 1 list1[middle_num+x] = p_dict_list[t][0] x,t = x+1,t+1 except: break print(" ".join(list1))
python 1055 集体照 (25 分)
最新推荐文章于 2022-11-10 18:10:06 发布