Pagini recente » Cod sursa (job #2563812) | Cod sursa (job #1245735) | Cod sursa (job #2381821) | Cod sursa (job #1325689) | Cod sursa (job #2538742)
def inp_gen(fname):
with open(fname, 'rt') as fin:
for line in fin:
for val in line.split():
yield int(val)
def euler(g, n, used, node, cycle):
for x, edge in g[node]:
if used[edge] is False:
used[edge] = True
euler(g, n, used, x, cycle)
cycle.append(node)
def solve(g, n, m, euler_path):
used = {x: False for x in range(m)}
euler(g, n, used, 1, euler_path)
if __name__ == "__main__":
it = inp_gen('ciclueuler.in')
n, m = next(it), next(it)
g = {x: [] for x in range(1, n + 1)}
for i in range(m):
x, y = next(it), next(it)
g[x].append((y, i))
g[y].append((x, i))
euler_path = []
solve(g, n, m, euler_path)
with open('ciclueuler.out', 'wt') as fout:
for x in euler_path[:-1]:
fout.write('{} '.format(x))
fout.write('\n')