Pagini recente » Cod sursa (job #1211521) | Cod sursa (job #2304609) | Cod sursa (job #1122486) | Cod sursa (job #2252275) | Cod sursa (job #907706)
Cod sursa(job #907706)
#include<fstream>
#include<vector>
#include<cstdlib>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
const int Mmax = 500008;
const int Nmax = 100007;
int N; int M; int X[Mmax]; int Y[Mmax];
vector<int> G[Nmax]; bool Visited[Mmax];
void Read(){
fin >> N >> M;
for(int i = 1 ; i <= M; ++i){
fin >> X[i] >> Y[i];
G[X[i]].push_back(i);
G[Y[i]].push_back(i);
}
}
void Euler(int Nod){
for(int i = 0; i < G[Nod].size(); ++i)
if(Visited[G[Nod][i]] == false){
Visited[G[Nod][i]] = true;
Euler(X[G[Nod][i]] + Y[G[Nod][i]] - Nod);
fout << Nod <<" ";
}
}
int main(){
Read();
for(int i = 1; i <= N; ++i)
if(G[i].size() % 2 ){
fout << -1; exit(0);
}
Euler(1);
return 0;
}