#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
#define int i64
#define vi vector<int>
#define vvi vector<vi>
#define vb vector<bool>
#define pii pair<int, int>
#define fi first
#define se second
#define sz(x) (int)(x).size()
inline void solve(){
int n, m;
cin >> n >> m;
vector<vector<pii>> adj(n);
for(int i = 0; i < m; i++){
int a, b;
cin >> a >> b;
adj[--a].emplace_back(--b, i);
adj[b].emplace_back(a, i);
}
vb vis(m);
vi circuit, seen(n);
function<void(int)> dfs = [&](int v) -> void {
while(!adj[v].empty()){
pii to = adj[v].back();
adj[v].pop_back();
if(vis[to.se]) continue;
vis[to.se] = true;
dfs(to.fi);
}
circuit.emplace_back(v);
if(++seen[v] == 2){
cout << v + 1 << " ";
circuit.pop_back();
while(circuit.back() != v){
cout << circuit.back() + 1 << " ";
seen[circuit.back()]--;
circuit.pop_back();
}
cout << "\n";
seen[v] = 1;
}
return;
};
dfs(0);
return;
}
signed main(){
ios_base::sync_with_stdio(false); cin.tie(0);
int t = 1;
//cin >> t;
while(t--){
solve();
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |