Advertisement
tuki2501

EULER.cpp

Jul 13th, 2020 (edited)
1,993
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ii pair<int, int>
  5. #define fi first
  6. #define sc second
  7. #define pub push_back
  8. #define pob pop_back
  9. #define puf push_front
  10. #define pof pop_front
  11.  
  12. stack<ii> adj[100005];
  13. bool rem[400005];
  14.  
  15. signed main() {
  16.   ios::sync_with_stdio(0); cin.tie(0);
  17.   int n, m; cin >> n >> m;
  18.   for (int i = 1; i <= m; i++) {
  19.     int u, v; cin >> u >> v;
  20.     adj[u].push(ii(v, i));
  21.     adj[v].push(ii(u, i));
  22.     rem[i] = 0;
  23.   }
  24.   stack<int> s; s.push(1);
  25.   while (s.size()) {
  26.     int i = s.top();
  27.     while (adj[i].size()) {
  28.       ii j = adj[i].top();
  29.       adj[i].pop();
  30.       if (!rem[j.sc]) {
  31.         rem[j.sc] = 1;
  32.         s.push(j.fi);
  33.         break;
  34.       }
  35.     }
  36.     if (i == s.top()) {
  37.       cout << i << ' ';
  38.       s.pop();
  39.     }
  40.   }
  41. }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement