Pagini recente » Cod sursa (job #2677039) | Cod sursa (job #1947159) | Cod sursa (job #1389258) | Cod sursa (job #73933) | Cod sursa (job #2575419)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 100005;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n, m;
vector<pair<int, bool>> graf[NMAX];
void dfs(int node)
{
for(int i = 0;i<graf[node].size();i++)
{
if(graf[node][i].second){
graf[node][i].second=false;
for(int j = 0;j< graf[graf[node][i].first].size();j++)
{
if(graf[graf[node][i].first][j].first==node)
graf[graf[node][i].first][j].second = false;
}
dfs(graf[node][i].first);
}
}
fout<<node<<' ';
}
int main()
{
fin>>n>>m;
while(m--)
{
int a, b;
fin>>a>>b;
graf[a].push_back({b,true});
graf[b].push_back({a,true});
}
for(int i = 1;i<=n;i++){
if(graf[i].size()%2)
{
fout<<-1;
return 0;
}
}
dfs(1);
return 0;
}