DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 认证的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

Streaming Channels

返回题目

题解

채널의 최대 지속 시간이 LLL이라고 하자.

먼저 스트리밍 구간의 종료 시각을 ttt로 고정한다. 이때 가능한 가장 이른 시작 시각은 max⁡(0,t−L)\max(0,t-L)max(0,t−L)이므로, 고정된 ttt에서 송출할 수 있는 세션의 수를 최대화하려면 구간 [max⁡(0,t−L),t][\max(0,t-L),t][max(0,t−L),t]를 사용하면 된다. 세션 iii가 이 구간에 포함될 필요충분조건은 다음과 같다.

Ei≤t≤Si+LE_i \leq t \leq S_i+LEi​≤t≤Si​+L

따라서 세션 iii는 종료 시각 ttt의 범위 [Ei,Si+L][E_i,S_i+L][Ei​,Si​+에 을 더한다.

반대로 스트리밍 구간의 시작 시각을 ttt로 고정하면 가능한 가장 늦은 종료 시각은 t+Lt+Lt+L이다. 세션 iii가 포함될 필요충분조건은 다음과 같다.

max⁡(0,Ei−L)≤t≤Si\max(0,E_i-L) \leq t \leq S_imax(0,Ei​−L)≤t≤Si​

따라서 세션 iii는 시작 시각 ttt의 범위 [max⁡(0,Ei−L),Si][\max(0,E_i-L),S_i][max(0,Ei​−L),에 을 더한다.

구간 덧셈 이벤트를 시각 순서대로 처리하면, 각 LLL에 대해 다음 두 함수를 만들 수 있다.

  • PL(T)P_L(T)PL​(T): 종료 시각이 TTT 이하인 하나의 스트리밍 구간으로 송출할 수 있는 세션 수의 최댓값.
  • QL(T)Q_L(T)QL​(: 시작 시각이 이상인 하나의 스트리밍 구간으로 송출할 수 있는 세션 수의 최댓값.

채널 A가 먼저 운영되고 채널 B가 나중에 운영되는 경우에는 어떤 경계 시각 TTT가 존재하여 앞 채널은 TTT 이하에서 끝나고 뒤 채널은 TTT 이상에서 시작한다. 이 경우의 최댓값은 다음과 같다.

max⁡T(PLA(T)+QLB(T))\max_T \left(P_{L_A}(T)+Q_{L_B}(T)\right)Tmax​(PLA​​

채널 B가 먼저 운영되는 경우도 같은 방식으로 max⁡T(PLB(T)+QLA(T))\max_T(P_{L_B}(T)+Q_{L_A}(T))maxT​(PLB​​(T를 계산한다.

각 함수의 값은 구간 덧셈 이벤트가 발생하는 시각에서만 바뀐다. 그러므로 두 함수의 이벤트 시각을 모아 정렬한 뒤, 그 시각들에 대해서만 위 식을 평가하면 충분하다.

이 알고리즘의 시간 복잡도는 정렬 때문에 O(Nlog⁡N)O(N\log N)O(NlogN)이고, 메모리 사용량은 O(N)O(N)O(N)이다.

Solution written by GPT5.5

L]
111
S
i​
]
111
T
)
TTT
(
T
)
+
QLB​​
(
T
)
)
)
+
QLA​​(T))