Submission #1168108

#TimeUsernameProblemLanguageResultExecution timeMemory
1168108hashimali새로운 문제 (POI13_luk)C++20
50 / 100
596 ms23916 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define endl '\n'
#define ld long double
#define pb push_back
#define pf push_front
#define mod 1'000'000'007
#define se second
#define fi first
#define all(ls) (ls).begin(),(ls).end()
#define int long long
using namespace std;
using namespace __gnu_pbds;
template<typename type>using ordered_set=tree<type,null_type,less<type>,rb_tree_tag,tree_order_statistics_node_update>;
template<typename type>using ordered_multiset=tree<type,null_type,less_equal<type>,rb_tree_tag,tree_order_statistics_node_update>;
int n;
const int N=3e5+10;
vector<int>g[N];
int dfs(int u,int mid,int p=-1){
    int tot=0;
    // if(u==1)
        // tot++;
    tot+=(g[u].size()-1);
    for(int v:g[u]){
        if(v==p)
            continue;
        tot+=dfs(v,mid,u);
    }
    return max(0LL,tot-mid);
}
void solve(){
    cin>>n;
    for(int i=1;i<n;i++){
        int u,v;
        cin>>u>>v;
        g[u].pb(v);
        g[v].pb(u);
    }
    int low=0,high=n;
    while(low<=high){
        int mid=(low+high)/2;
        if(dfs(1,mid)<=0)
            high=mid-1;
        else
            low=mid+1;
    }
    cout<<low<<endl;
}
signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t=1;
    // cin>>t;
    for(int i=1;i<=t;i++){
        // cout<<"Scenario #"<<i<<":"<<" ";
        solve();
    }
}
#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...