Submission #1134236

#TimeUsernameProblemLanguageResultExecution timeMemory
1134236DangKhoizzzzPapričice (COCI20_papricice)C++20
0 / 110
4 ms4932 KiB
#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pii pair <int , int>
#define ar3 array <int , 3>

using namespace std;

const int INF = 1e9 + 7;
const int maxn = 2e5 + 7;

vector <int> g[maxn];
int n , sz[maxn] , ans = INF;

void dfs(int u , int p)
{
    vector <int> vec;
    sz[u] = 1;

    for(int v: g[u])
    {
        if(v == p) continue;
        dfs(v , u);
        sz[u] += sz[v];
        vec.push_back(sz[v]);
    }
    vec.push_back(n - sz[u]);
    sort(vec.begin() , vec.end() , greater <int> ());

    if(vec.size() < 2) return;

    int size_part = 1;

    for(int i = 2; i < vec.size(); i++)
    {
        size_part += vec[i];
    }

    int res = max(abs(vec[0] - size_part) , abs(vec[1] - size_part));
    ans = min(ans , res);
}

void solve()
{
    cin >> n;
    for(int i = 1; i < n; i++)
    {
        int u , v;
        cin >> u >> v;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    dfs(1 , 1);

    cout << ans << '\n';
}


int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...