Pagini recente » Cod sursa (job #2607125) | Monitorul de evaluare | Cod sursa (job #707351) | Cod sursa (job #1300395) | Cod sursa (job #2202826)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define dMAX 100000
using namespace std;
int n, m, x, y;
bool viz;
vector<pair<int, bool> > graf[dMAX + 2];
vector<int> muchii;
int d[dMAX + 2];
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
bool Compare(pair<int, bool> e1, pair<int, bool> e2) {
return e1.first < e2.first;
}
void Euler(int v) {
int newV, u, l, nn;
for (u = 0; u < graf[v].size(); u++) {
newV = graf[v][u].first;
viz = graf[v][u].second;
if (!viz) {
graf[v][u].second = true;
for (l = 0; l < graf[newV].size(); l++) {
nn = graf[newV][l].first;
if (nn == v && graf[newV][l].second == false) {
graf[newV][l].second = true;
break;
}
}
Euler(newV);
}
}
muchii.push_back(v);
}
int main()
{
int i, j;
fin >> n >> m;
for (i = 1; i <= m; i++) {
fin >> x >> y;
graf[x].push_back({y, 0});
graf[y].push_back({x, 0});
d[x]++, d[y]++;
}
/*for (i = 1; i <= n; i++) {
if (d[i] % 2) {
fout << -1;
return 0;
}
}*/
for (i = 1; i <= n; i++) {
sort(graf[i].begin(), graf[i].end(), Compare);
}
//Euler(1);
/*if (muchii.size() - 1 != m) {
fout << -1;
return 0;
}*/
//for (i = 0; i < muchii.size() - 1; i++) fout << muchii[i] << ' ';
return 0;
}