#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define MOD 1000000007
const int N = 10005;
vector<ll> g[N];
ll sz[N], mid;
void dfs(int u, int v = 0){
sz[u] = mid - g[u].size() + (u != 1);
for(auto c : g[u]){
if(c != v){
dfs(c, u);
sz[u] += min(0ll, sz[c]);
}
}
}
void solve(){
ll n, u, v;
cin >> n;
for(int i = 0; i <n - 1; i ++){
cin >> u >> v;
g[u].push_back(v);
g[v].push_back(u);
}
ll l = -1, r = n - 1;
while(r - l > 1){
mid = (l + r) / 2;
dfs(1);
if(sz[1] < 0){
l = mid;
}
else{
r = mid;
}
}
cout << r << '\n';
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int tests = 1;
// cin >> tests;
for(int i = 1; i <= tests; i ++)
solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |