Pagini recente » Cod sursa (job #157685) | Cod sursa (job #3218702) | Cod sursa (job #2655904) | Cod sursa (job #82782) | Cod sursa (job #2331086)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("ciclueuler.in");
ofstream fout("ciclueuler.out");
bool f[100005],ok;
int n,m,i,j,a,b;
vector<int> L[100005],s;
void euler(int nod){
int nnod;
for (int i=0;i<L[nod].size();i++){
nnod=L[nod][i];
if (nnod>0){
L[nod][i]=-1;
for (j=0;j<L[nnod].size() && nod!=L[nnod][j];j++);
L[nnod][j]=-1;
euler(nnod);
}
}
f[nod]=true;
s.push_back(nod);
}
int main(){
fin>>n>>m;
for (i=1;i<=m;i++){
fin>>a>>b;
L[a].push_back(b);
L[b].push_back(a);
}
euler(1);
ok=true;
for (i=1;i<=n && ok;i++)
ok=f[i];
if (ok)
for (i=1;i<s.size();i++)
fout<<s[i]<<" ";
else
fout<<-1;
fin.close();
fout.close();
return 0;
}