practivceAlgorithm/백준

[백준][Python] 20364 부동산 다툼.

findTheValue 2021. 8. 11. 14:37

완전 이진트리. 어차피 배열 인덱스랑 같은 노드값 가지므로 배열 번호대로 루트까지 타고 올라가는 방법을 사용.

import sys
input = sys.stdin.readline

N, Q = map(int,input().split())
owned = [False for _ in range(N+1)]

for _ in range(Q):
    dest = int(input())
    tmp = dest
    flag = 0
    while tmp != 1:
        if owned[tmp]:
            flag = 1
            first_owned = tmp
        if tmp%2:
            tmp -= 1
        tmp //= 2
    if flag:
        print(first_owned)
    else:
        owned[dest] = True
        print(0)