Pagini recente » Cod sursa (job #614819) | Cod sursa (job #2042607) | Cod sursa (job #601621) | Cod sursa (job #643656) | Cod sursa (job #1834025)
#include <vector>
#include <list>
#include<queue>
#include<stack>
#include<fstream>
#include <cstring>
#define MAXN 10001
#define MAXM 50001
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
stack<int> S;
int N, M, C[MAXM], nc=0;
char G[MAXN][MAXM];
void euler(int nod)
{
int urm;
for (urm = 1; urm <= N; urm++)
if (G[nod][urm])
{
//S.push(nod);
G[nod][urm] = 0;
G[urm][nod] = 0;
euler(urm);
}
//S.pop();
C[nc++] = nod;
}
int main()
{
int a, b;
fin >> N >> M;
for (int i = 1; i <= M; i++)
{
fin >> a >> b;
G[a][b] = 1;
G[b][a] = 1;
}
euler(1);
if (nc!=0)
for (int i = 0; i < nc; i++)
{
fout << C[i]<<' ';
}
else
{
fout << '-1';
}
}