제출 #697559

#제출 시각아이디문제언어결과실행 시간메모리
697559piOOENewspapers (CEOI21_newspapers)C++17
4 / 100
1 ms340 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector<vector<int>> adj(n); vector<int> fa(n); iota(fa.begin(), fa.end(), 0); auto leader = [&](int x) { while (x != fa[x]) x = fa[x] = fa[fa[x]]; return x; }; auto unite = [&](int x, int y) -> bool { x = leader(x), y = leader(y); return (x != y) && (fa[y] = x, true); }; bool yay = true; for (int i = 0; i < m; ++i) { int x, y; cin >> x >> y; x -= 1, y -= 1; adj[x].push_back(y); adj[y].push_back(x); yay &= unite(x, y); } // auto bfs = [&](int source) { // vector<int> dist(n, -1), par(n, -1); // dist[source] = 0; // // queue<int> q; // q.push(source); // // while (!q.empty()) { // int v = q.front(); // q.pop(); // // if (dist[v] > 3) { // break; // } // // for (int to : adj[v]) { // if (dist[to]) { // dist[to] = dist[v] + 1; // q.push(to); // par[to] = v; // } // } // } // // return dist; // }; // auto tmp = bfs(0); // // int d = max_element(tmp.begin(), tmp.end()) - tmp.begin(); // // auto dist = bfs(d); // //// if (*max_element(dist.begin(), dist.end()) > 3) { //// cout << "NO\n"; //// return 0; //// } if (yay) { cout << "YES\n"; cout << "1\n1\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...