Pagini recente » Cod sursa (job #1798214) | Cod sursa (job #2291704) | Cod sursa (job #2257778) | Cod sursa (job #725410) | Cod sursa (job #2331088)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("ciclueuler.in");
ofstream fout("ciclueuler.out");
bool 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);
}
}
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++){
for (j=0;j<L[i].size() && L[i][j]==-1;j++);
ok=!(j<L[i].size());
}
if (ok)
for (i=1;i<s.size();i++)
fout<<s[i]<<" ";
else
fout<<-1;
fin.close();
fout.close();
return 0;
}