Submission #1231554

#TimeUsernameProblemLanguageResultExecution timeMemory
1231554bbldrizzyBurza (COCI16_burza)C++20
0 / 160
0 ms328 KiB
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std;
using ll = long long;
using P = pair<ll, ll>;
vector<vector<int>> adj;
vector<int> st;

void dfs(int nd, int pr) {
    if (adj[nd].size() == 1) {
        st[nd] = 0;
        return;
    }
    if (adj[nd].size() == 2 && nd != 0) {
        st[nd] = 0;
        return;
    }
    vector<int> c;
    for (int x: adj[nd]) {
        if (x != pr) {
            dfs(x, nd);
            c.push_back(st[x]);
        }
    }
    int m1 = 0;
    int m2 = 0;
    for (int x: c) {
        if (x > m1) {
            m2 = m1;
            m1 = x;
        } else if (x > m2) {
            m2 = x;
        }
    }
    st[nd] = m2+1;
}

int main() {
    int n, k; cin >> n >> k;
    adj.resize(n);
    st.resize(n);
    for (int i = 0; i < n-1; i++) {
        int a, b; cin >> a >> b; --a; --b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    dfs(0, 0);
    if (st[0]+1 <= k) {
        cout << "DA";
    } else {
        cout << "NE";
    }
} 
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...