Submission #918935

#TimeUsernameProblemLanguageResultExecution timeMemory
918935NK_Newspapers (CEOI21_newspapers)C++17
0 / 100
1 ms344 KiB
// Success consists of going from failure to failure without loss of enthusiasm #include <bits/stdc++.h> using namespace std; #define nl '\n' #define pb push_back template<class T> using V = vector<T>; using vi = V<int>; int main() { cin.tie(0)->sync_with_stdio(0); int N, M; cin >> N >> M; if (M != N - 1) { cout << "NO" << nl; exit(0-0); } V<vi> adj(N); vi in(N), path(N); for(int i = 0; i < N - 1; i++) { int u, v; cin >> u >> v; --u, --v; adj[u].pb(v); adj[v].pb(u); in[u]++, in[v]++; } for(int u = 0; u < N; u++) if (in[u] == 1) { for(auto& v : adj[u]) path[v] = 1; } for(int u = 0; u < N; u++) if (!path[u]) { for(auto& v : adj[u]) in[v]--; } vi ans; function<void(int)> dfs = [&](int u) { ans.pb(u); path[u] = 0; int chd = 0; for(auto& v : adj[u]) if (path[v]) { dfs(v); chd++; } if (chd >= 2) { cout << "NO" << nl; exit(0-0); } ans.pb(u); }; for(int u = 0; u < N; u++) if (path[u] && in[u] <= 1) dfs(u); cout << "YES" << nl; cout << size(ans) << nl; for(auto& x : ans) cout << x + 1 << " "; cout << nl; exit(0-0); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...