Pagini recente » Cod sursa (job #1502186) | Cod sursa (job #2389699) | Cod sursa (job #2223920) | Cod sursa (job #2044709) | Cod sursa (job #1149612)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
vector<vector<long long> > graf;
vector<long long> is_visited,ciclu;
vector<long long>::iterator it;
queue<long long> q;
long long n,m;
void euler (long long v)
{
long long w;
while(graf[v].size())
{
w = *graf[v].begin();
if(graf[v].size())
graf[v].erase(graf[v].begin());
if(graf[w].size()){
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");
long long 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;
}