Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n, m = map(int, input().split())
- edges = []
- while m:
- edges.append(list(map(int, input().split())))
- m -= 1
- g = dict()
- for v in range(1, n + 1):
- g[v] = []
- for a, b in edges:
- g[a].append(b)
- g[b].append(a)
- visited = [0] * (n + 1)
- res = 'YES'
- for v in g:
- if not visited[v]:
- st = [v]
- visited[v] = 1
- while st:
- cur = st.pop()
- color = 2 if visited[cur] == 1 else 1
- for nb in g[cur]:
- if visited[nb] == 0:
- st.append(nb)
- visited[nb] = color
- elif visited[nb] != color:
- res = 'NO'
- print(res)
- if res == 'YES':
- print(' '.join([str(i) for i, c in enumerate(visited) if c == 2]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement