测试点5运行超时,用sys.stdin.readline().split()替换掉input().split()
测试点6非零返回,是因为提前出现-1,链表从中间断开,感觉这个测试点跟题目不符
import sys
if __name__ == '__main__':
begin, n, k = sys.stdin.readline().split()
d = dict()
for i in range(int(n)):
inputs = sys.stdin.readline().split()
d[inputs[0]] = [inputs[0], inputs[1], inputs[2]]
m = 0
next = begin
for i in range(int(n)):
if next == "-1":
break
next = d[next][2]
m += 1
n = m
pre = "-1"
now = begin
bs = [begin]
es = []
for i in range(int(n) // int(k)):
for j in range(int(k)):
nxt = d[now][2]
d[now][2] = pre
pre = now
now = nxt
es.append(pre)
bs.append(now)
for i in range(len(es) - 1):
d[bs[i]][2] = es[i + 1]
d[bs[-2]][2] = bs[-1]
now = es[0]
while now != "-1":
p = d[now]
print("%s %s %s" % (p[0], p[1], p[2]))
now = p[2]