Pagini recente » Cod sursa (job #1838641) | Cod sursa (job #2833841) | Cod sursa (job #2844348) | Cod sursa (job #1838803) | Cod sursa (job #3202784)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
const int MMAX = 500000;
const int NMAX = 100000;
typedef pair<int,int> pii;
int n, m;
vector<int> sol;
bool viz[MMAX + 1];
vector<pii> adj[NMAX + 1];
void dfs(int nod)
{
while(!adj[nod].empty())
{
pii i = adj[nod].back();
adj[nod].pop_back();
if(!viz[i.second])
{
viz[i.second] = 1;
dfs(i.first);
}
}
sol.push_back(nod);
}
int main()
{
fin>>n>>m;
for(int i=1;i<=m;i++)
{
int u, v;
fin >> u >> v;
adj[u].push_back({v, i});
adj[v].push_back({u, i});
}
for(int i=1;i<=n;i++)
if(adj[i].size()%2==1)
{
fout<<-1;
return 0;
}
dfs(1);
sol.pop_back();
for(int i:sol)
fout<<i<<' ';
return 0;
}