結果

問題 No.3389 k-Days Later
コンテスト
ユーザー 学ぶマン
提出日時 2025-12-11 21:51:54
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 357 ms / 2,000 ms
コード長 752 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 634 ms
コンパイル使用メモリ 82,660 KB
実行使用メモリ 97,088 KB
最終ジャッジ日時 2025-12-11 21:52:16
合計ジャッジ時間 19,039 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 28
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

from itertools import accumulate
INF = 10**18
from bisect import bisect_left, bisect_right

N = int(input())
D = list(map(int, input().split()))
rD = list(accumulate(D, initial=0))
Y = sum(D)
Q = int(input())

def f(m, d):
    return rD[m - 1] + d

def num_ika(li, x): # x 以下の最大値(なければ -inf)
    res = bisect_right(li, x) - 1
    return -INF if res == -1 else li[res]

ansl = []
for i in range(Q):
    y, m, d, k = map(int, input().split())
    k -= 1
    k += f(m, d)

    # y年1月1日 の k日後
    sho, amari = divmod(k, Y)

    ans_y = y + sho

    # 年始から amari 日後
    ans_m = bisect_right(rD, amari)

    ans_d = amari - rD[ans_m - 1] + 1
    ansl.append((ans_y, ans_m, ans_d))

for a in ansl:
    print(*a)
0