nq1s788

эйлеров путь с кратными ребрами и петлями

Jan 25th, 2026
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.65 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <unordered_set>
  4. #include <set>
  5.  
  6. using namespace std;
  7.  
  8. vector<unordered_multiset<int>> g;
  9. vector<int> answ;
  10.  
  11. void euler(int h) {
  12.     while (!g[h].empty()) {
  13.         int e = *g[h].begin();
  14.         g[h].erase(g[h].begin());
  15.         g[e].erase(g[e].find(h));
  16.         euler(e);
  17.     }
  18.     answ.push_back(h + 1);
  19. }
  20.  
  21. int main(){
  22.     int n, m;
  23.     cin >> n >> m;
  24.     g.resize(n);
  25.     for (int i = 0; i < m; i++) {
  26.         int x, y;
  27.         cin >> x >> y;
  28.         x--, y--;
  29.         g[x].insert(y);
  30.         g[y].insert(x);
  31.     }
  32.     euler(0);
  33.     for (auto e : answ) cout << e << ' ';
  34.     return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment