제출 #1370840

#제출 시각아이디문제언어결과실행 시간메모리
1370840SpyrosAlivMeetings 2 (JOI21_meetings2)C++20
0 / 100
1 ms344 KiB
#include <bits/stdc++.h>
using namespace std;

int n;
vector<vector<int>> tree;

pair<int, int> max_dis(int node, int prev = 0) {
    pair<int, int> cand = {node, 1};
    for (auto next: tree[node]) {
        if (next == prev) continue;
        pair<int, int> might = max_dis(next, node);
        might.second++;
        if (might.second > cand.second) cand = might;
    }
    return cand;
}

int get_diam() {
    int end1 = max_dis(1).first;
    return max_dis(end1).second;
}

void solve() {
    cin >> n;
    tree.resize(n+1);
    for (int i = 1; i < n; i++) {
        int u, v; cin >> u >> v;
        tree[u].push_back(v);
        tree[v].push_back(u);
    }
    int diam = get_diam();
    for (int k = 1; k <= n; k++) {
        if (k & 1) {
            cout << 1 << "\n";
        }
        else {
            cout << max(1, diam) << "\n";
            diam -= 2;
        }
    }
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    solve();
    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…