This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
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... |