Pagini recente » Borderou de evaluare (job #1010207) | Cod sursa (job #2518763) | Cod sursa (job #323781) | Cod sursa (job #3274012) | Cod sursa (job #1141139)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
const int MAX_N=100100;
vector<int> A[MAX_N];
void sterge(int a,int b) {
A[a].pop_back();
for(auto it=A[b].begin(); it!=A[b].end(); it++) {
if(*it==a) {
A[b].erase(it);
return;
}
}
}
vector<int> E;
void euler(int nod) {
while(A[nod].size()) {
int f=A[nod].back();
sterge(nod,f);
euler(f);
}
E.push_back(nod);
}
int main() {
int n,m;
fin>>n>>m;
for(int i=1;i<=m;i++) {
int a,b;
fin>>a>>b;
A[a].push_back(b);
A[b].push_back(a);
}
euler(1);
for(auto it=E.begin(); it<E.end()-1;it++) {
fout<<*it<<' ';
}
return 0;
}