Official
C - Ideal Holidays Editorial by nok0
はじめに、一週間の何日目かが重要なので、\(D_i\) は \(A+B\) で割ったあまりで置き換えておきます。
この操作によって得られた \(D\) を、重複を除いて昇順にソートします。このようにして得られた列を \(E=(E_1,E_2,\ldots,E_k)\) とします。
このとき、本問題の答えが Yes
となることは、以下の条件と同値です。
- ある \(i\ (1\leq i \leq k)\) が存在して、\((E_{i+1}-E_i) \bmod (A+B) > B\) を満たす。ただし\(E_{k+1}\) は \(E_1\) を意味する。
証明は、ある \(i\) について \(E_i\) が \(1\) 週間の \(A\) 日目(休日の最終日)であると仮定しても問題ないことから従います。(そうでない場合で条件を満たす場合、\(E_i\) を休日の最終日としても条件を満たすため)
以上の処理は \(\mathrm{O}(N\log N)\) で行えます。
posted:
last update: