#include <bits/stdc++.h>
#define ll long long
using namespace std;
int N, M;
bitset <500001> D, V;
stack <ll> VG[500001];
inline void Euler()
{
int node = 1, temp;
stack <int> S, T;
S.push(node);
while(S.size())
{
node = S.top();
while(VG[node].size() && V[VG[node].top() >> 20]) VG[node].pop();
if(VG[node].size())
{
V[VG[node].top() >> 20] = true;
S.push(VG[node].top() & ((1 << 20) - 1));
VG[node].pop();
continue;
}
if(D[node])
{
while(D[node]) {cout << T.top() << ' '; D[T.top()] = false; T.pop();}
cout << '\n';
}
T.push(node); D[node] = true;
S.pop();
}
return;
}
int main()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> N >> M;
int u, v;
for(ll i = 1; i <= M; i++)
{
cin >> u >> v;
VG[u].push((i << 20) + v);
VG[v].push((i << 20) + u);
}
Euler();
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... |