Pagini recente » Cod sursa (job #2328541) | Cod sursa (job #1130430) | Cod sursa (job #1313044) | Cod sursa (job #2801437) | Cod sursa (job #1177164)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
int n,m,sol[100005],u;
vector<int> v[100001];
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
void euler(int i);
int main()
{
in>>n>>m;
int i,a,b;
for(i=1;i<=n;i++) v[i].push_back(0);
for(i=1;i<=m;i++)
{
in>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
v[a][0]++;
v[b][0]++;
}
euler(1);
for(i=1;i<=u;i++) out<<sol[i]<<' ';
out<<'\n';
}
void euler(int i)
{
int k=1,x,j;
while(v[i][0])
{
while(v[i][k]==-1) k++;
x=v[i][k];
v[i][k]=-1;
for(j=1;j<v[x].size();j++)
if(v[x][j]==i) {v[x][j]=-1; v[x][0]--; break;}
v[i][0]--;
euler(x);
}
sol[++u]=i;
}