Pagini recente » Cod sursa (job #2056917) | Cod sursa (job #2972084) | Cod sursa (job #651298) | Cod sursa (job #135448) | Cod sursa (job #2084367)
#include <fstream>
#include <vector>
#include <list>
#include <cstring>
#define Nmax 100001
using namespace std;
ifstream f("ciclueuler.in"); ofstream g("ciclueuler.out");
vector <int> G[Nmax];
list <int> Q;
int N,M;
bool ok; char s[100000];
void euler(int x)
{ Q.push_back(x);
while(!Q.empty())
{ x=Q.front();
if(G[x].empty()) {Q.pop_front(); g<<x<<' ';}
else
{ int i=G[x].back(); G[x].pop_back();
Q.push_front(i);
vector<int>::iterator it=G[i].begin(),sf=G[i].end();
for(;it!=sf;++it)
if(*it==x) {G[i].erase(it); break;}
}
}
}
int main()
{ f>>N>>M;
for(int x,y,i=1;i<=M;i++)
{ f>>x>>y; G[x].push_back(y); G[y].push_back(x);}
euler(1);
return 0;
}