제출 #999159

#제출 시각아이디문제언어결과실행 시간메모리
999159crafticatNewspapers (CEOI21_newspapers)C++17
4 / 100
1 ms516 KiB
#include <bits/stdc++.h>

using namespace std;
vector<vector<int>> g;
int MAX_DEP = 0;

void calcMaxDepth(int x, int p, int depth, bool &lim) {
    if (depth > 2) lim = true;
    for (auto child : g[x]) {
        if (child == p) continue;
        calcMaxDepth(child,x,depth + 1,lim);
    }
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(nullptr);

    int n, m; cin >> n >> m;

    g.resize(n + 1);
    for (int i = 0; i < m; ++i) {
        int a, b; cin >> a >> b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    bool binary = true;
    int root = 0;
    for (int i = 1; i <= n; ++i) {
        if (g[i].size() > 2) root = i;
    }
    if (root == 0 && m == n - 1) {
        cout << "YES\n";
        cout << "1\n";
        cout << "1\n";
        return 0;
    }
    if (m != n - 1) {
        cout << "NO\n";
        return 0;
    }
    for (int i = 1; i <= n; ++i) {
        if (g[i].size() < 3) continue;
        int r = 0;
        for (auto child : g[i]) {
            bool reach = false;
            calcMaxDepth(child,i,0,reach);
            if (reach) {
                r++;
            }
        }
        if (r > 2) {
            cout << "NO\n";
            return 0;
        }
    }

    cout << "YES\n";
    cout << "1\n";
    cout << "1\n";

    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

newspapers.cpp: In function 'int main()':
newspapers.cpp:26:10: warning: unused variable 'binary' [-Wunused-variable]
   26 |     bool binary = true;
      |          ^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...