题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
num=int(input())
order=int(input())
listn=[str(i) for i in range(num)]
listg=[g for g in range(num)]
for i in range(num):
inp=input().split(' ')
listn[i]=inp[0]
listg[i]=int(inp[-1])
for j in range(len(listg)):
for k in range(len(listg)-1-j):
if listg[k]>listg[k+1]:
tmp=listg[k]
listg[k]=listg[k+1]
listg[k+1]=tmp
tmp2=listn[k]
listn[k]=listn[k+1]
listn[k+1]=tmp2
if order==0:
flag=0
count=0
for i in range(num-1):
if count:
count-=1
continue
if listg[i]==listg[i+1]:
for j in range(i,num-1):
if listg[j]==listg[j+1]:
count+=1
else:
break
#反转名字顺序并替代原来的序列
listn[i:i+count+1]=listn[i:i+count+1][::-1]
#首层循环通过if count/count-=1 跳到i+count+1
for i in range(num):
print(listn[::-1][i],listg[::-1][i],sep=' ')
if order==1:
for i in range(num):
print(listn[i],listg[i],sep=' ')
