Pagini recente » Cod sursa (job #536473) | Cod sursa (job #966321) | Cod sursa (job #2621489) | Cod sursa (job #651514) | Cod sursa (job #1593563)
#include <iostream>
#include <fstream>
#include <vector>
#define nrmax 100001
#define pb push_back
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
vector < int > G[nrmax];
int n , m , x , y , nod , j;
int grad[nrmax];
void sterge_muchie ( int a , int b )
{
for ( int t = 0 ; t < G[b].size() ; t++ )
{
if ( G[b][t] == a )
{
G[b].erase(G[b].begin() + t );
break;
}
}
}
void ciclu_eulerian( int i )
{
g << i << " " ;
while ( !G[i].empty() )
{
nod = G[i][0];
G[i].erase(G[i].begin());
sterge_muchie(i ,nod);
ciclu_eulerian(nod);
}
}
int main()
{
f >> n >> m ;
for ( ; m-- ; )
{
f >> x >> y;
G[x].pb(y);
G[y].pb(x);
grad[x]++;
grad[y]++;
}
for ( int i = 1; i <= n; i++ )
{
if ( grad[x] == 0 or grad[x]%2 == 1 )
{
g << -1 ;
return 0;
}
}
ciclu_eulerian(1);
return 0;
}