Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

pizzaroot

23338번: Eatcoin 본문

공부/알고리즘

23338번: Eatcoin

pizzaroot 2022. 10. 6. 21:26

\(x\)를 먼저 구한 후, 이분탐색을 통해 \(y\)를 구한다.

 

\(\displaystyle\sum_{k=1}^{n}k^5\)은 \(O(1)\)시간에 구할 수 있다.

 

Python으로 풀면 편하다.

p, q = map(int, input().split())
def f(n):
    return n ** 2 * (2 * n ** 4 + 6 * n ** 3 + 5 * n * n - 1) // 12
i = 1
while True:
    if p <= q * i ** 5:
        x = i * p - f(i - 1) * q
        print(x)
        break
    i += 1

lo, hi = 0, 10 ** 100
while lo < hi:
    mid = (lo + hi + 1) // 2
    if q * (f(i + mid) - f(i)) <= 10 ** 99 + mid * p:
        lo = mid
    else:
        hi = mid - 1
print(lo + i + 1)

'공부 > 알고리즘' 카테고리의 다른 글

ICPC Seoul Regional 2022 예선 후기  (0) 2022.10.11
17564번: Dishonest Driver  (0) 2022.10.06
23239번: 당근 밭  (0) 2022.10.06
17555번: Blurred Pictures  (0) 2022.10.06
17554번: City of Lights  (0) 2022.10.06
Comments