Pagini recente » Cod sursa (job #1839943) | Cod sursa (job #254624) | Cod sursa (job #2382610) | Cod sursa (job #2928399) | Cod sursa (job #1219562)
#include<fstream>
#include<list>
#include<algorithm>
#include<vector>
#define MAXN 100005
#define pb push_back
using namespace std;
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
int N,M,deg[MAXN];
list <int> G[MAXN];
list <int>::iterator it;
vector <int> ciclu;
void read() {
int x,y,i;
cin>>N>>M;
for(i=1;i<=M;i++) {
cin>>x>>y;
G[x].pb(y); deg[x]++;
G[y].pb(x); deg[y]++; }
}
void euler(int v) {
int i,w;
while(G[v].size()>0) {
w=*G[v].begin();
deg[v]--; deg[w]--;
G[v].erase(G[v].begin());
for(it=G[w].begin();it!=G[w].end();it++)
if(*it==v) {
G[w].erase(it);
break; }
euler(w); }
ciclu.pb(v);
}
int main() {
int i;
read();
euler(1);
for(i=0;i<ciclu.size();i++)
cout<<ciclu[i]<<" ";
return 0;
}