#1025 反转链表 (25 分)
'''
00100 6 4
00000 4 99999
00100 1 12309
68237 6 -1
33218 3 00000
99999 5 68237
12309 2 33218
'''
link=[None for _ in range(10000)]
head,N,K=map(int,input().split(' '))
for i in range(N):
add,data,next=map(int,input().split(' '))
link[add]=[data,next]
T,p=[],head
while -1!=p:
if None==link[p]:break
#print(p,*node)
T.append(["%05d"%(p) ,link[p][0]])
p=link[p][1]
for j in range(K-1,len(T),K):
i=j-K+1
while i<j:
T[i],T[j]=T[j],T[i]
i+=1
j-=1
T.append(['-1'])
for i in range(len(T)-1):
print("%s %d %s"%(T[i][0],T[i][1],T[i+1][0]))
先后while循环把link按照data排序,然后将前k个进行翻转,i到j进行翻转一次,j+1到len(T)进行翻转一次,输出最后的T的列表。