Advertisement
Guest User

102

a guest
Jan 23rd, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. def q():
  4. print(-1)
  5. exit()
  6.  
  7. answer = list()
  8.  
  9. def fleury(u, n, m):
  10. while cnt[u]:
  11. for i in range(n[0]):
  12. if g[u][i] > 0:
  13. v = i
  14. break
  15. m[0] -= 1
  16. g[u][v] -= 1
  17. if u != v:
  18. g[v][u] -= 1
  19. cnt[u] -= 1
  20. cnt[v] -= 1
  21. fleury(v, n, m)
  22. answer.append(u + 1)
  23.  
  24.  
  25. if __name__ == '__main__':
  26. n, m = map(int, input().split())
  27. g = [[0 for x in range(n)] for y in range(n)]
  28. cnt = [0 for i in range(n)]
  29.  
  30. for i in range(m):
  31. x, y = map(int, input().split())
  32. x -= 1
  33. y -= 1
  34. if i == 0:
  35. start = x
  36. g[x][y] += 1
  37. if x != y:
  38. g[y][x] += 1
  39. cnt[x] += 1
  40. cnt[y] += 1
  41.  
  42. v1 = -1
  43. v2 = -1
  44. for i in range(n):
  45. if cnt[i] % 2 == 1:
  46. if v1 == -1:
  47. v1 = i
  48. start = i
  49. elif v2 == -1:
  50. v2 = i
  51. else:
  52. q()
  53.  
  54. if v1 == -1:
  55. v1 = start
  56. m = [m]
  57. n = [n]
  58. fleury(v1, n, m)
  59. cnt = []
  60. if m[0] != 0:
  61. q()
  62. print(len(answer))
  63. print(' '.join(map(str, answer)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement