Submission #1083638

#TimeUsernameProblemLanguageResultExecution timeMemory
1083638LouisChengSenior Postmen (BOI14_postmen)Cpython 3
0 / 100
19 ms4444 KiB
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].discard(node) solve(top) res.append(node) solve(0) last = [len(res)] * n next = [len(res)] * 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...