Pagini recente » Cod sursa (job #1327242) | Cod sursa (job #833237) | Cod sursa (job #1956219) | Cod sursa (job #2380687) | Cod sursa (job #1802911)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin ("ciclueuler.in");
ofstream fout ("ciclueuler.out");
struct prb
{
int nod,mu;
};
vector <prb> g[100010];
int n,k,st[500010],vc[500010];
void citire ()
{
int m,i,a,b;
prb val;
fin>>n>>m;
for(i=1; i<=m; i++)
{
fin>>a>>b;
val.nod=b;
val.mu=i;
g[a].push_back(val);
val.nod=a;
g[b].push_back(val);
}
}
void parcurgere(int x)
{
int i,pp,a=g[x].size(),fiu;
while(a!=0)
{
while(vc[g[x].back().mu]==1&&a>0)
{
g[x].pop_back();
a--;
}
//cout<<x<<" "<<"\n";
if(a>0)
{
fiu=g[x].back().nod;
//cout<<x<<" "<<fiu<<"\n";
vc[g[x].back().mu]=1;
k++;
st[k]=fiu;
g[x].pop_back();
x=fiu;
a=g[x].size();
}
//cout<<k<<"\n";
}
}
int main()
{
int i,j,nd;
citire();
/*for(i=1;i<=n;i++){
for(j=0;j<g[i].size();j++)
fout<<g[i][j].nod<<" ";
fout<<"\n";
}*/
st[1]=1;
k=1;
while(k!=0)
{
nd=st[k];
parcurgere(nd);
if(k>1)
fout<<st[k]<<" ";
k--;
}
return 0;
}