BOJ 28305 - 세미나 배정

image.png

가장 많은 날의 세미나 수를 이분탐색으로 찾아준다.

ii 세미나의 시작일로 가능한 범위는

Max(1,aiT+1)ai\text{Max}(1, a_i-T+1) \sim a_i 이다. 이를 Li,RiL_i, R_i 라 하자.

모든 세미나를 LiL_i 기준으로 오름차순 정렬하고 시작하자.

mm 일만 겹치게 하는것이 가능하냐를 판별하고 싶을 때, deque 같은거에 아직 mm개가 덜찼다면 항상 LiL_i 에 세미나가 시작하게 해주고,

그렇지 않다면 mm 번째 이전의 세미나와 안겹치는 선에서 가장 왼쪽에 있는 값을 현재 세미나의 시작 일로 잡는다.

mm 번째 이전의 세미나가 kk 일에 시작한다면 Max(k+T,Li)\text{Max}(k+T, L_i) 일에 시작해주면 된다.

Tags:

Categories:

Updated:

Comments