結果

問題 No.3715 Tomorrow is MONDAY!!!!!!
コンテスト
ユーザー LyricalMaestro
提出日時 2026-09-19 01:47:02
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,301 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 78 ms
コンパイル使用メモリ 81,408 KB
実行使用メモリ 115,712 KB
最終ジャッジ日時 2026-09-19 01:47:07
合計ジャッジ時間 4,847 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 11 WA * 16
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

# https://yukicoder.me/problems/no/3715



def main():
    K, N = map(int, input().split())
    D = list(map(int, input().split()))

    d_prev = 0
    d_nexts = 0
    for i in range(K):
        d_nexts += D[i] - 1

    start_n = 0
    for i in range(K):
        d_nexts -= D[i] - 1
        end_n = (start_n + D[i] - 1) % N

        answer = float("inf")

        most_n = (D[i] // N) + (1 if D[i] % N > 0 else 0)
        x = start_n + D[i]
        current_n = (x // N) + (1 if x % N > 0 else 0)
        if start_n > 0:
            current_n -= 1

        # 全体をシフト
        if most_n > current_n:
            if start_n > 0 and d_prev >= start_n:
                answer = min(answer, start_n)
            if d_nexts >= N - start_n:
                answer = min(answer, start_n)

        # D[i]自体を増やす
        need_n = start_n if start_n > 0 else N
        if d_prev >= need_n:
            answer = min(answer, need_n)
        need_n = N - end_n
        if d_nexts >= need_n:
            answer = min(answer, need_n)

        if answer == float("inf"):
            print(-1)
        else:
            print(answer)

        start_n += D[i]
        start_n %= N
        d_prev += D[i] - 1
    
        

                

               






if __name__ == "__main__":
    main()
0