Pagini recente » Cod sursa (job #1273927) | Cod sursa (job #1433367) | Cod sursa (job #644405) | Cod sursa (job #2483540) | Cod sursa (job #1972390)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
int n,m;
vector <int> v[100001],T;
void sterge(int u, int w)
{
for(int i=0;i<v[u].size();++i)
if(v[u][i]==w)
{
v[u].erase(v[u].begin()+i);
break;
}
}
int main()
{
f>>n>>m;
for(int i=1;i<=m;++i)
{
int x,y;
f>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
for(int i=1;i<=n;++i)
sort(v[i].begin(),v[i].end());
stack <int> S;
S.push(1);
while(!S.empty())
{
int u=S.top();
if(!v[u].empty())
{
S.push(v[u][0]);
sterge(v[u][0],u);
v[u].erase(v[u].begin());
}
else
{
S.pop();
T.push_back(u);
}
}
if(T.size()!=(m+1))
{
g<<-1;
}
else
{
for(int i=0;i<T.size()-1;++i)
g<<T[i]<<" ";
}
return 0;
}