이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
import sys
# sys.stdin = open("1.in", "r")
n, m = map(int, input().split())
paths = [set() for _ in range(n)]
for _ in range(m):
a, b = map(lambda x: int(x) - 1, input().split())
paths[a].add(b)
paths[b].add(a)
res = []
def solve(node):
while paths[node]:
top = paths[node].pop()
paths[top].remove(node)
solve(top)
res.append(node)
solve(0)
last = [len(res) + 1] * n
next = [len(res) + 1] * len(res)
for i in range(len(res) - 1, -1, -1):
next[i] = last[res[i]]
last[res[i]] = i
nested = [[]]
ends = [len(res) - 1]
for i in range(len(res)):
if ends[-1] == i:
ends.pop()
print(*nested.pop())
continue
nested[-1].append(res[i] + 1)
if next[i] < ends[-1]:
nested.append([res[i] + 1])
ends.append(next[i])
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |