Submission #88553

#TimeUsernameProblemLanguageResultExecution timeMemory
88553GogotchuriTriumphal arch (POI13_luk)Pypy 2
0 / 100
62 ms28584 KiB
import sys
sys.setrecursionlimit(200000)

def depth_first(h, p, t, ls, memo):
    sm = 0
    for elem in ls[h]:
        if elem == p:
            continue
        depth_first(elem, h, t, ls, memo)
        sm += memo[elem]
    memo[h] = max(sm - t + 1, 1)


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())
        f -= 1
        s -= 1
        ls[f].append(s)
        ls[s].append(f)    
    s = 0
    e = n
    while not s > e:
        m = (s + e) >> 1
        t = m
        depth_first(0, -1, t, ls, memo)
        if memo[0] > 1:
            s = m + 1
        else:
            e = m-1

    print(s)

if __name__ == "__main__":
    main()
#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...