AtCoder Beginner Contest 225 D - Play Train【Python】
https://atcoder.jp/contests/abc225/tasks/abc225_d
AtCoder ProblemsでDifficulty: 778、Solve Probability: 33%でした。
解けませんでした。
双方向リストも思いつかず、制約の「3xの形式のクエリで出力する電車の番号の個数の合計は106以下」についても、3xのクエリごとの番号の個数の合計が106以下の意味と捉えてしまっていました。
今後こういった制約の文については注意したいところです。
UNICORNプログラミングコンテスト2021(AtCoder Beginner Contest 225) - YouTube
N, Q = map(int, input().split()) front = [-1] * N back = [-1] * N for i in range(Q): q = list(map(int, input().split())) if q[0] == 3: x = q[1]-1 while front[x] != -1: x = front[x] ans = [x+1] while back[x] != -1: x = back[x] ans.append(x+1) print(len(ans), *ans) else: x, y = q[1]-1, q[2]-1 if q[0] == 1: front[y] = x back[x] = y elif q[0] == 2: front[y] = -1 back[x] = -1