还有两个测试点没有通过,先记录下来,等下午再整整
#得到输出
def get_out(list):
length = len(list)
for i in range(length):
if i == length - 1:
print(list[i])
else:
print(list[i] + ' ', end = '')
#得到输出每列的排列
def get_(circle, num_per, list_height, dir_height):
for k in range(circle):
flag = 1
list = []
for i in range(num_per):
list.append('')
middle = (num_per) // 2
#print(middle)
my_length = 0
while my_length != num_per:
key_height = list_height.pop(0)
key_name = dir_height[key_height]
length = len(key_name)
for j in range(length):
my_name = key_name.pop(0)
#print(my_name)
#print(middle)
my_length += 1
list[middle] = my_name
#middle = (num_per) // 2
if flag % 2 == 1:
middle -= flag
else:
middle += flag
flag += 1
get_out(list)
string_1 = input().split()
num_1, num_2 = int(string_1[0]), int(string_1[1])
num_per = num_1 // num_2
remainder = num_1 % num_2
list_height = []
dir_height = {}
#将所有的数据放在以身高为关键字的字典中
for i in range(num_1):
name, height = input().split()
height = int(height)
if height in list_height:
dir_height[height].append(name)
dir_height[height].sort()
else:
list_height.append(height)
dir_height[height] = ''
list_name = []
list_name.append(name)
dir_height[height] = list_name
list_height.sort()
list_height.reverse()
#单独处理最后一排
get_(1, num_per + remainder, list_height, dir_height)
#对于剩余的队列进行处理
get_(num_2 - 1, num_per, list_height, dir_height)