Pagini recente » Cod sursa (job #141960) | Cod sursa (job #414778) | Cod sursa (job #380431) | Cod sursa (job #1085081) | Cod sursa (job #760603)
Cod sursa(job #760603)
#include<stdio.h>
#include<fstream>
#include<vector>
#define nmax 100007
#define mmax 500006
using namespace std;
ifstream fin("ciclueuler.in");
FILE *fout = fopen("ciclueuler.out","w");
vector<int> v[nmax];
int N, x[mmax], y[mmax], M;
bool viz[mmax];
inline void euler(int nod)
{
for(vector<int>::iterator it = v[nod].begin(); it != v[nod].end(); ++it)
{
if(!viz[*it])
{
viz[*it] = true;
euler(x[*it] + y[*it] - nod);
fprintf(fout,"%d ", nod);
//fout <<nod <<" ";
}
}
}
void read()
{
fin>>N>>M;
for(int i =1; i <= M ; i++)
{
fin>>x[i] >>y[i];
v[x[i]].push_back(i);
v[y[i]].push_back(i);
}
for(int i = 1; i <= N; i++)
if(v[i].size()%2)
{
fprintf(fout, "-1");
return;
}
euler(1);
}
int main()
{
read();
fin.close();
return 0;
}