#include <iostream> #include <vector> using namespace std; const int MAXN = 100005; int parent[MAXN]; int degree[MAXN]; int find(int u) { if (parent[u] != u) { parent[u] = find(parent[u]); } return parent[u]; } void unionSet(int u, int v) { int pu = find(u); int pv = find(v); if (pu != pv) { parent[pv] = pu; } } int main() { int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) { parent[i] = i; degree[i] = 0; } for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; degree[u]++; degree[v]++; unionSet(u, v); } if (m == 0) { cout << (n == 1 ? "Eulerian Circuit" : "No Eulerian Path") << endl; return 0; } /************************************************************** Problem: 2055 User: wuzihang Language: C++ Result: Compile Error ****************************************************************/