⚡️algorithm

[이분탐색] 백준 15732. 도토리 숨기기 - ing

남남이루 2022. 5. 17. 22:24

문제 바로가기

https://www.acmicpc.net/problem/15732

문제 이해하기

주요 변수

import sys
sys.stdin = open('.//이분탐색//input2.txt', 'rt')
n,k,d = map(int, input().split())
rules = [list(map(int, input().split())) for _ in range(k)]
# print(n,k,d)
# print(rules)
def dotori(mid):
    total = 0
    for s, e, step in rules:
        beta = min(e, mid)
        if s <= beta:
            cal = ((beta-s) // step) + 1
            total += cal

    return total

# n개의 상자, k개의 규칙, 도토리 개수
# 마지막 도토리 상자번호 출력

low, high = 1, 10**6
ans = 0
while low <= high:
    mid = (low+high)//2
    if dotori(mid) >= d:
        ans = mid
        high = mid -1
    else:
        low = mid + 1

print(ans)