백준 16282번: Black Chain (블랙 체인)



[www.acmicpc.net/problem/16282]

#풀이

예시보기
고리를 푼 횟수로 최대 몇g 까지 만들수 있는지 알아내면, 최대 보다 작은g은 만들 수 있다.

  • 1회: 2 + 1 + 4
  • 2회: 3 + 1 + 6 + 1 + 12
  • 3회: 4 + 1 + 8 + 1 + 16
  • n회: n + 1 + 2n + 1 + 3n + 1 ...

-> (2^(n+1) -1) * (n+1) + n

1
2
3
4
5
6
7
8
chain=int(input())
a=2
for n in range(1,61):
    a *= 2
    max = (a - 1)*( n + 1 ) + n
    if chain <= max :
        print(n)
        break
cs

댓글 쓰기

Post a Comment (0)

다음 이전