This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
import sys
sys.setrecursionlimit(200000)
def depth_first(h, p, t, ls, memo):
memo[h] = t - len(ls[h])
memo[h] += 0 if p == 0 else 1
for elem in ls[h]:
if elem == p:
continue
depth_first(elem, h, t, ls, memo)
if memo[elem] < 0:
memo[h] += memo[elem]
def main():
n = int(input())
ls = [[] for i in range(n + 2)]
memo = [0 for i in range(n + 2)]
for _ in range(n - 1):
f, s = map(int, input().split())
ls[f].append(s)
ls[s].append(f)
s = 0
e = n
while s < e:
m = (s + e)//2
t = m
depth_first(1, 0, t, ls, memo)
if memo[1] < 0:
s = m + 1
else:
e = m
print(s)
if __name__ == "__main__":
main()
# | 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... |