답안 #838842

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
838842 2023-08-27T22:45:29 Z JellyTheOctopus Papričice (COCI20_papricice) C++17
0 / 110
4 ms 4948 KB
#include <bits/stdc++.h>
using namespace std;

#define fi first
#define se second

const int MOD = 1e9+7;

int N;
vector<int> adjList[200001];
int upper[200001];
int lower[200001];
int ans = (1<<30);

void DFS(int node, int parent) {
    set<int> s;
    int total = 1;
    for (auto child: adjList[node]) {
        if (child == parent) continue;
        DFS(child, node);
        total += upper[child]+lower[child];
    }
    upper[node] = total;
    for (auto child: adjList[node]) {
        if (child == parent) continue;
        if (total-(upper[child]+lower[child]) < abs(upper[node]-lower[node])
            || (total-(upper[child]+lower[child]) == abs(upper[node]-lower[node])
                && total-(upper[child]+lower[child]) <= upper[child]+lower[child])) {
            upper[node] = total-(upper[child]+lower[child]);
            lower[node] = upper[child]+lower[child];
        }
        if (total-lower[child] < abs(upper[node]-lower[node])
            || (total-lower[child] == abs(upper[node]-lower[node])
                && total-lower[child] <= lower[child])) {
            upper[node] = total-lower[child];
            lower[node] = lower[child];
        }
    }
    int mx = max(N-total, max(upper[node], lower[node]));
    int mn = min(N-total, min(upper[node], lower[node]));
    ans = min(ans, mx-mn);
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> N;
    for (int i = 1; i < N; i++) {
        int u, v;
        cin >> u >> v;
        adjList[u].push_back(v);
        adjList[v].push_back(u);
    }
    DFS(1, -1);
    cout << ans << "\n";
}
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 4 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 4 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 4 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -