제출 #1168181

#제출 시각아이디문제언어결과실행 시간메모리
1168181RafiullahTriumphal arch (POI13_luk)C++20
100 / 100
358 ms22496 KiB
#include <bits/stdc++.h> #define fi first #define se second #define bupo __builtin_popcount using namespace std; typedef long long ll; typedef pair<int,int> pii; #define int long long const int LOG = 16, MAXB = 1<<LOG, SQR = 1<<10; const ll MOD = 1e9+7; const int mod = 998244353; const int N = 3e5 + 5; vector<int> G[N];int M; int dfs(int node,int par = 0){ int c = G[node].size() - (node != 1); for(int ch : G[node]){ if(par == ch)continue; int ret = dfs(ch,node); c += ret; } return max(0ll, c - M); } void solve(){ int n;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); } if(n == 1){ cout << 0 << '\n';return; } int L = 0, R = n; while(L + 1 < R){ M = (L + R) / 2; if(dfs(1) == 0)R = M; else L = M; } cout << R << '\n'; } signed main(){ int t = 1; // cin >> t; while(t--) 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...