BOJ 1057トーナメント


人の助けを得た.
  • 1->2, 2->1, 3->2, 4->2, 5->3, 6->3 ... 作成
  • の人数を減らすために2に分け、最終的に0
  • に収束した.
    このようなルールで解けました.
    N, kim, lim = map(int, input().split())
    
    ans = 0
    while N:
    	ans += 1
    
    	if (kim+1)//2 == (lim+1)//2:
    		break
    	kim = (kim+1)//2
    	lim = (lim+1)//2
    	N //= 2
    
    if N == 0:
    	ans = -1
    print(ans)