Pagini recente » Cod sursa (job #2738402) | Cod sursa (job #1660819) | Cod sursa (job #2278753) | Cod sursa (job #311315) | Cod sursa (job #2860345)
#include <fstream>
#include <vector>
#define NMax 100005
#define MMax 500005
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
vector <int> g[NMax],c;
int n,m,a,b,i;
bool used[MMax];
int to[MMax],from[MMax];
void euler(int nod)
{
while (!g[nod].empty())
{
int w=g[nod].back();
g[nod].pop_back();
if(!used[w])
{
used[w]=true;
int next;
if(from[w]==nod)
next=to[w];
else
next=from[w];
euler(next);
}
}
c.push_back(nod);
}
int main()
{
fin>>n>>m;
for(i=1; i<=m; i++)
{
fin>>a>>b;
g[a].push_back(i);
g[b].push_back(i);
from[i]=a;
to[i]=b;
}
euler(1);
for(i=0; i<c.size()-1; i++)
fout<<c[i]<<" ";
return 0;
}