Pagini recente » Cod sursa (job #1382191) | Cod sursa (job #2895099) | Cod sursa (job #2893042) | Cod sursa (job #3132168) | Cod sursa (job #1933024)
#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)
{
while(!G[poz].empty())
{
ttl--;
int nod=*G[poz].begin();
G[poz].erase(G[poz].begin());
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;
int x,y;
for(int i=1;i<=m;i++)
{
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;
}