Pagini recente » Cod sursa (job #7251) | Cod sursa (job #272935) | Cod sursa (job #2136773) | Cod sursa (job #2436286) | Cod sursa (job #1149609)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
vector<vector<int> > graf;
vector<int> is_visited,ciclu;
vector<int>::iterator it;
queue<int> q;
int n,m;
void euler (int v)
{
int w;
while(graf[v].size())
{
w = *graf[v].begin();
graf[v].erase(graf[v].begin());
it=find(graf[w].begin(), graf[w].end(), v);
graf[w].erase(it);
euler(w);
}
ciclu.push_back(v);
}
int main()
{
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
int i,u,v;
f>>n>>m;
graf.resize(n+1);
is_visited.resize(n+1);
for(i=1;i<=m;i++)
{
f>>u>>v;
graf[u].push_back(v);
graf[v].push_back(u);
}
euler(1);
for(i=0;i<ciclu.size()-1;i++)
g<<ciclu[i]<<' ';
return 0;
}