알고리즘/SWEA

[SWEA] 4839. 이진탐색

빙빙 2021. 2. 16. 13:35
T = int(input())

for tc in range(1, T+1):
    P,A,B = map(int, input().split())
    start = 1
    end = P
    cnt_A = 0
    cnt_B = 0
    #A의 경우
    while True:
        mid = int((start + end) / 2)
        cnt_A += 1
        if mid == A:
            break
        elif mid < A: #중간값이 찾는값보다 크면 시작점으로 치환
            start = mid
        elif mid > A: #중간값이 찾는값보다 작으면 끝점으로 치환
            end = mid

    #B의 경우
    start = 1
    end = P
    while True:
        mid = int((start + end) / 2)
        cnt_B += 1
        if mid == B:
            break
        elif mid < B:
            start = mid
        elif mid > B:
            end = mid
    #카운트값이 크다면 많이 돈 것으로 진것으로 판단. 이긴것을 출력
    result = ''
    if cnt_A < cnt_B:
        result = 'A'
    elif cnt_A > cnt_B:
        result = 'B'
    elif cnt_A == cnt_B:
        result = '0'

    print("#{} {}".format(tc, result))