Submission #1168100

#TimeUsernameProblemLanguageResultExecution timeMemory
1168100AbdullahIshfaqTriumphal arch (POI13_luk)C++20
50 / 100
5 ms1352 KiB
#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 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...