DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

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))