Submission #528154

#TimeUsernameProblemLanguageResultExecution timeMemory
528154jesus_coconutNewspapers (CEOI21_newspapers)C++17
8 / 100
2 ms332 KiB
#include <bits/stdc++.h> using namespace std; int n, m; vector<vector<int>> adj; void load() { cin >> n >> m; adj.resize(n); for (int i = 0; i < m; ++i) { int a, b; cin >> a >> b; --a; --b; adj[a].push_back(b); adj[b].push_back(a); } } int const N = 1024; bitset<N> bio; void solve2() { if (n <= 3) { cout << "YES\n"; cout << "2\n2 2\n"; return; } cout << "YES\n"; cout << 2 * n - 4 << '\n'; for (int i = 2; i < n; ++i) { cout << i << ' '; } for (int i = n - 1; i > 1; --i) { cout << i << ' '; } cout << '\n'; } bool isLine() { for (int i = 0; i < n - 1; ++i) { bool good = false; for (auto u : adj[i]) { good |= (u == i + 1); } if (!good) return false; } return true; } int isStar() { for (int i = 0; i < n; ++i) { if (size(adj[i]) == n - 1) { return i + 1; } } return -1; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); load(); if (m >= n) { cout << "NO\n"; return 0; } if (n == 1) { cout << "YES\n"; cout << "1\n1\n"; return 0; } if (isLine()) { solve2(); return 0; } int c = isStar(); if (c > -1) { cout << "YES\n"; cout << 2 << '\n'; cout << c << ' ' << c << '\n'; return 0; } cout << "NO\n"; return 0; }

Compilation message (stderr)

newspapers.cpp: In function 'int isStar()':
newspapers.cpp:56:19: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   56 |  if (size(adj[i]) == n - 1) {
      |      ~~~~~~~~~~~~~^~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...