Submission #881963

#TimeUsernameProblemLanguageResultExecution timeMemory
881963TAhmed33Newspapers (CEOI21_newspapers)C++98
8 / 100
1 ms600 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e3 + 25; vector <int> adj[MAXN]; int n, m; int cnt = 0; void dfs (int pos, int par, int dep = 0) { if (dep == 3) { cnt++; return; } for (auto j : adj[pos]) if (j != par) dfs(j, pos, dep + 1); } int main () { cin >> n >> m; bool flag = 1; for (int i = 1; i <= m; i++) { int a, b; cin >> a >> b; if (a > b) swap(a, b); flag &= a + 1 == b; adj[a].push_back(b); adj[b].push_back(a); } if (m != n - 1) { cout << "NO\n"; return 0; } if (flag) { cout << "YES\n"; if (n == 1) { cout << "1\n1\n"; return 0; } if (n == 2) { cout << "2\n2 2\n"; return 0; } cout << 2 * (n - 2) << '\n'; for (int i = 2; i < n; i++) cout << i << " "; for (int i = n - 1; i >= 2; i--) cout << i << " "; cout << '\n'; return 0; } for (int i = 1; i <= n; i++) { if (adj[i].size() >= 3) { cnt = 0; dfs(i, -1); if (cnt >= 3) { cout << "NO\n"; return 0; } } } cout << "YES\n"; cout << "1\n1\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...