Pagini recente » Cod sursa (job #2086049) | Cod sursa (job #3270080) | Cod sursa (job #586082) | Cod sursa (job #1720221) | Cod sursa (job #908397)
Cod sursa(job #908397)
#include <fstream>
#include <vector>
using namespace std;
ifstream fi("ciclueuler.in");
ofstream fo("ciclueuler.out");
vector< int > G[100001],Q;
long n,m,i,j,a,b,nod,nod2;
vector< int > :: iterator it;
int main(){
fi >> n >> m;
for (i=1; i<=m; i++){
fi >> a >> b;
G[a].push_back(b);
G[b].push_back(a);
}
for (i=1; i<=n; i++)
if (G[i].size() & 1) { fo << "-1"; return 0;}
Q.push_back(1);
while (!Q.empty()){
nod=Q.back();
if (G[nod].empty()){
Q.pop_back();
fo << nod << " ";
}else{
nod2=G[nod].back();
G[nod].pop_back();
Q.push_back(nod2);
for (it=G[nod2].begin(); it!=G[nod2].end(); it++)
if (*it==nod){G[nod2].erase(it); break;}
}
}
return 0;
}