ohwhatalovelyday

Untitled

Feb 16th, 2021
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define FASTER() ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  4. #define ff first
  5. #define ss second
  6. #define pb push_back
  7. #define all(a) a.begin(), a.end()
  8. #define dbg(x) cerr<<" "<<#x<<" "<<x<<endl
  9.  
  10. typedef long long ll;
  11.  
  12. using namespace std;
  13.  
  14. vector <vector <pair <int, int>>> gr;
  15. vector <bool> used;
  16. vector <int> first;
  17.  
  18. void euler(int v) {
  19.     while(first[v] < gr[v].size()) {
  20.         auto p = gr[v][first[v]];
  21.         first[v]++;
  22.         int id = p.ff, to = p.ss;
  23.         if(!used[id]) {
  24.             used[id] = true;
  25.             euler(to);
  26.             cout << v << " " << to << "\n";
  27.         }
  28.     }
  29. }
  30.  
  31. int main() {
  32.     FASTER();
  33.     int n, m;
  34.     cin >> n >> m;
  35.     gr.resize(n);
  36.     first.resize(n, 0); //номер первого непосещенного ребра из вершины
  37.     used.resize(m, false);
  38.     for(int i = 0; i < m; i++) {
  39.         int u, v;
  40.         cin >> u >> v;
  41.         u--; v--;
  42.         gr[u].pb({i, v});
  43.         gr[v].pb({i, u});
  44.     }
  45.     euler(0);
  46. }
  47.  
Advertisement
Add Comment
Please, Sign In to add comment