문제 바로가기
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)
'⚡️algorithm' 카테고리의 다른 글
[이분탐색] 백준 11662. 민호와강호 (거리계산, 수학, 삼분탐색) (0) | 2022.05.18 |
---|---|
[이분탐색] 백준 10815. 숫자카드 (0) | 2022.05.18 |
[이분탐색] 백준 16434. 드래곤 앤 던전 (0) | 2022.05.17 |
[이분탐색] 백준 2110. 공유기 설치 (0) | 2022.05.16 |
[이분탐색] 백준 1654. 랜선 자르기 (0) | 2022.05.16 |