Submission #999245

#TimeUsernameProblemLanguageResultExecution timeMemory
999245crafticatNewspapers (CEOI21_newspapers)C++17
6 / 100
1 ms384 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<int>> g; int MAX_DEP = 0; vector<int> ans; void dfs(int x, int p) { if (g[x].size() == 1 && p != 0) return; ans.push_back(x); for (auto child : g[x]) { if (child == p) continue; dfs(child,x); } ans.push_back(x); } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; g.resize(n + 1); for (int i = 0; i < m; ++i) { int a, b; cin >> a >> b; g[a].push_back(b); g[b].push_back(a); } if (m != n -1) { cout << "NO\n"; return 0; } if (n == 1) { cout << "YES\n"; cout << "1\n"; cout << "1\n"; return 0; } vector<int> siz(n + 1); for (int i = 1; i <= n; ++i) { if (g[i].size() == 1) { for (auto child : g[i]) siz[child]--; } siz[i]+= g[i].size(); } for (int i = 1; i <= n; ++i) { if (siz[i] == 1 && g[i].size() <= 3) { for (auto child : g[i]) siz[child]--; } } for (int i = 1; i <= n; ++i) { if (siz[i] > 2) { cout << "NO\n"; return 0; } } dfs(1,0); cout << "YES\n"; cout << ans.size() << "\n"; for (auto x: ans) { cout << x << " "; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...