Submission #697555

#TimeUsernameProblemLanguageResultExecution timeMemory
697555piOOENewspapers (CEOI21_newspapers)C++17
0 / 100
1 ms320 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);

    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);
    }

    auto bfs = [&](int source) {
        vector<int> dist(n, -1);
        dist[source] = 0;

        queue<int> q;
        q.push(source);

        while (!q.empty()) {
            int v = q.front();
            q.pop();

            for (int to : adj[v]) {
                if (dist[to] == -1) {
                    dist[to] = dist[v] + 1;
                    q.push(to);
                }
            }
        }

        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()) > 2) {
        cout << "NO\n";
        return 0;
    }

    cout << "YES\n";

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...