Submission #1272941

#TimeUsernameProblemLanguageResultExecution timeMemory
1272941GabitussPotemkin cycle (CEOI15_indcyc)C++20
10 / 100
16 ms5112 KiB
#include <bits/stdc++.h> using namespace std; //@formatter:off using ll = long long; template<typename T> istream &operator>>(istream &is, vector<T> &a); template<typename T> ostream &operator<<(ostream &os, vector<T> &a); //@formatter:on signed main() { #ifdef LOCAL freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #else ios_base::sync_with_stdio(false); cin.tie(0); #endif int n, m; cin >> n >> m; vector<vector<int>> g(n); for (int i = 0; i < m; ++i) { int u, v; cin >> u >> v; g[u - 1].push_back(v - 1); g[v - 1].push_back(u - 1); } vector<int> ord(n); std::iota(ord.begin(), ord.end(), 0); std::sort(ord.begin(), ord.end(), [&](int i, int j) { return g[i].size() > g[j].size(); }); for (int v = 0; v < n; ++v) { std::sort(g[v].begin(), g[v].end(), [&](int i, int j) { return g[i].size() < g[j].size(); }); // while (!g[v].empty() && g[v].size() < g[g[v].back()].size()) { // g[v].pop_back(); // } } vector<int> used(n); for (int u = 0; u < n; ++u) { int cntl = 0; used[u] = true; for (auto v: g[u]) { cntl++; used[v] = true; } for (auto v: g[u]) { int cntr = 0; for (auto v2: g[v]) { if (used[v2]) { cntl--; } else { cntr++; } } if (cntl && cntr) { for (auto v2: g[v]) { used[v2] ^= 1; } for (auto v2: g[u]) { if (used[v2] && v2 != u && v2 != v) { cout << v2 + 1 << " "; break; } } for (auto v2: g[v]) { used[v2] ^= 1; } cout << u + 1 << " " << v + 1 << " "; for (auto v2: g[v]) { if (used[v2] == 0) { cout << v2 + 1 << "\n"; break; } } return 0; } for (auto v2: g[v]) { if (used[v2]) { cntl++; } else { cntr--; } } } used[u] = false; for (auto v: g[u]) { cntl--; used[v] = false; } } cout << "no" << "\n"; } // region POZOR template<typename T> ostream &operator<<(ostream &os, vector<T> &a) { for (int i = 0; i < a.size(); i++) os << a[i] << " \n"[i == a.size() - 1]; return os; } template<typename T> istream &operator>>(istream &is, vector<T> &a) { for (auto &i: a) is >> i; return is; } // endregion
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...