제출 #799723

#제출 시각아이디문제언어결과실행 시간메모리
799723JohannNewspapers (CEOI21_newspapers)C++14
4 / 100
9 ms452 KiB
#include "bits/stdc++.h" using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vvi; #define sz(x) (int)(x).size() #define all(x) (x).begin(), (x).end() int N, M; vvi adj; bool possible; vi cnt[2]; void dfs(int v, int p) { cnt[0][v] = 1; cnt[1][v] = 0; for (int u : adj[v]) if (u != p) { dfs(u, v); cnt[0][v] += cnt[1][u]; cnt[1][v] += cnt[0][u]; } } int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> N >> M; if (M > N - 1) { cout << "NO\n"; return 0; } adj.resize(N); for (int i = 0, a, b; i < M; ++i) { cin >> a >> b; --a, --b; adj[a].push_back(b), adj[b].push_back(a); } possible = true; cnt[0].resize(N), cnt[1].resize(N); for (int v = 0; v < N; ++v) { dfs(v, v); int crit = 0; for (int u : adj[v]) if (cnt[1][u] >= 2) ++crit; if (crit > 2) possible = false; } if (possible) { cout << "YES\n"; vi ans; ans.push_back(0); cout << sz(ans) << '\n'; for (int x : ans) cout << x + 1 << " "; cout << '\n'; } else cout << "NO\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...