Pagini recente » Cod sursa (job #2805856) | Istoria paginii runda/preitm2016/clasament | Cod sursa (job #1166947) | Cod sursa (job #1434843) | Cod sursa (job #2805966)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
#define MAXN 100005
int n, m, x, y, nc, nr, k;
vector<int> G[MAXN];
deque<int> Q;
bool ok;
void euler(int nod)
{
vector<int>::iterator it;
Q.push_back(nod);
while(!Q.empty()){
x = Q.front();
if (G[x].empty()){
Q.pop_front();
fout << x << ' ';
}else{
int i = G[x].back();
Q.push_front(i);
G[x].pop_back();
for (it=G[i].begin();it!=G[i].end();++it){
if (*it == x){
G[i].erase(it);
break;
}
}
}
}
}
int main() {
fin >> n >> m;
for (int i=1;i<=m;i++){
fin >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
euler(1);
/*if (nc < m - 1){
fout << -1 << '\n';
return 0;
}
for (int i=nc;i>1;i--)
fout << c[i] << ' ';*/
return 0;
}