Pagini recente » Cod sursa (job #2464200) | Cod sursa (job #3152975) | Cod sursa (job #2418065) | Cod sursa (job #871515) | Cod sursa (job #1932975)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
vector <int> G[100003];
int n,m,ttl;
queue <int> a;
void dfs(int poz)
{
for(vector <int>::iterator it=G[poz].begin();it!=G[poz].end();it++)
{
ttl--;
int nod=*it;
vector <int>::iterator it2=it;
it--;
G[poz].erase(it2);
for(vector <int>::iterator it1=G[nod].begin();it1!=G[nod].end();it1++)
if(*it1==poz)
{
G[nod].erase(it1);
break;
}
dfs(nod);
}
a.push(poz);
}
int main()
{
fin>>n>>m;
for(int i=1;i<=m;i++)
{
int x,y;
fin>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
ttl=m;
dfs(1);
if(ttl==0)
while(!a.empty())
{
fout<<a.front()<<" ";
a.pop();
}
else
fout<<"-1";
return 0;
}