Pagini recente » Cod sursa (job #899245) | Cod sursa (job #645526) | Cod sursa (job #1639710) | Cod sursa (job #582135) | Cod sursa (job #2095533)
#include <cstdio>
#include <set>
#include <vector>
#include <algorithm>
using namespace std;
FILE *f = fopen("ciclueuler.in","r");
FILE *g = fopen("ciclueuler.out","w");
int N,M;
vector<int> E;
multiset<int> G[100005];
void euler(int nod){
while(!G[nod].empty()){
int v = *G[nod].begin();
G[nod].erase(G[nod].begin());
G[v].erase(G[v].find(nod));
euler(v);
}
E.push_back(nod);
}
int main()
{
fscanf(f,"%d %d",&N,&M);
for(int i = 1;i <= M;i++){
int x,y;
fscanf(f,"%d %d",&x,&y);
G[x].insert(y);
G[y].insert(x);
}
euler(1);
E.pop_back();
for(auto it:E){
fprintf(g,"%d ",it);
}
fclose(f);
fclose(g);
return 0;
}