提出 #31632219


ソースコード 拡げる

import sys
import numpy as np
def solve(s):
    #s = input()
    #sl = list(input().split())
    n, k = s[:2]
    h = s[2:]
    #ここにコード
    dp = np.full(n, 10**10, np.int64)
    dp[0] = 0
     
    for i in range(n):
        dp[i:i+k+1] = np.minimum(dp[i:i+k+1], dp[i]+np.abs(h[i:i+k+1]-h[i]))


    #N = 1のときなどcorner caseを確認!
    return dp[-1]#answer


def main():
    stdin = np.fromstring(open(0).read(), dtype=np.int64, sep=' ')
    # stdin = np.fromstring(IN, dtype=np.int64, sep=' ')
    print(solve(stdin))

def cc_export():
    from numba.pycc import CC
    cc = CC('my_module')
    cc.export('solve', '(i8[:],)')(solve)
    cc.compile()
 
if __name__ == "__main__":
    if sys.argv[-1] == 'ONLINE_JUDGE':
        cc_export()
        sys.exit(0)
    
    from my_module import solve # type: ignore
    main()

提出情報

提出日時
問題 B - Frog 2
ユーザ denovo2021
言語 Python (3.8.2)
得点 100
コード長 882 Byte
結果 AC
実行時間 134 ms
メモリ 28380 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 16
セット名 テストケース
All 0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11
ケース名 結果 実行時間 メモリ
0_00 AC 110 ms 27144 KiB
0_01 AC 107 ms 26860 KiB
0_02 AC 108 ms 26896 KiB
0_03 AC 105 ms 27016 KiB
1_00 AC 107 ms 26852 KiB
1_01 AC 106 ms 27108 KiB
1_02 AC 115 ms 27860 KiB
1_03 AC 134 ms 28380 KiB
1_04 AC 118 ms 28220 KiB
1_05 AC 115 ms 28048 KiB
1_06 AC 120 ms 28288 KiB
1_07 AC 127 ms 28208 KiB
1_08 AC 120 ms 28276 KiB
1_09 AC 123 ms 27900 KiB
1_10 AC 131 ms 28116 KiB
1_11 AC 132 ms 28108 KiB