Submission #827431

#TimeUsernameProblemLanguageResultExecution timeMemory
827431BERNARB01Newspapers (CEOI21_newspapers)C++17
8 / 100
1 ms468 KiB
/** * author: BERNARD B.01 **/ #include <bits/stdc++.h> using namespace std; #ifdef B01 #include "deb.h" #else #define deb(...) #endif int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; if (m != n - 1) { cout << "NO" << '\n'; return 0; } vector<vector<int>> g(n); for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; --u; --v; g[u].push_back(v); g[v].push_back(u); } if (n == 1) { cout << "YES" << '\n'; cout << 1 << '\n'; cout << 1 << '\n'; return 0; } if (n == 2) { cout << "YES" << '\n'; cout << 2 << '\n'; cout << 1 << '\n'; cout << 1 << '\n'; return 0; } vector<int> z; function<void(int, int)> Dfs = [&](int v, int pr) { int c = 0; if (g[v].size() > 1) { z.push_back(v); c++; } bool bl = false; for (int u : g[v]) { if (u == pr) { continue; } Dfs(u, v); if (g[v].size() > 1 && g[u].size() > 1) { z.push_back(v); c++; } else if (g[v].size() > 1 && g[u].size() == 1) { bl = true; } } if (bl) { z.push_back(v); c++; } }; Dfs(0, -1); cout << "YES" << '\n'; cout << (int) z.size() << '\n'; for (int i = 0; i < (int) z.size(); i++) { if (i > 0) { cout << " "; } cout << z[i] + 1; } cout << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...