#include <bits/stdc++.h>
using namespace std;
set<int> adj[500001];
vector<int> euler;
void dfs(int i)
{
for(;adj[i].size()>0;)
{
int br=0;
for(auto it : adj[i])
{
br=it;
}
adj[i].erase(br);
adj[br].erase(i);
dfs(br);
}
euler.push_back(i);
}
int inde[500001];
int main()
{
int n,m;
cin>>n>>m;
for(int m1=m;m1>0;m1--)
{
int a,b;
cin>>a>>b;
adj[a].insert(b);
adj[b].insert(a);
}
memset(inde,-1,sizeof(inde));
dfs(1);
vector<int> temp;
for(int i=0;i<euler.size();i++)
{
if(inde[euler[i]]==-1)
{
temp.push_back(euler[i]);
inde[euler[i]]=temp.size()-1;
}
else
{
cout<<euler[i]<<" ";
vector<int> res;
while(temp[temp.size()-1]!=euler[i])
{
res.push_back(temp[temp.size()-1]);
inde[temp[temp.size()-1]]=-1;
temp.pop_back();
}
reverse(res.begin(),res.end());
for(auto it : res)
cout<<it<<" ";
cout<<endl;
inde[euler[i]]=temp.size()-1;
}
}
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... |