Submission #14453565
Source Code Expand
import sys
sys.setrecursionlimit(10**6)
N, K = map(int, input().split())
h = list(map(int, input().split()))
INF = 10**9
dp = [INF] * N
def solve(n):
if dp[n] < INF:
return dp[n]
if n == 0:
dp[n] = 0
elif n == 1:
dp[n] = abs(h[0] - h[1])
else:
for i in range(1, K+1):
if n - i < 0:
break
if dp[n - i] < INF:
cost = dp[n - i] + abs(h[n - i] - h[n])
else:
cost = solve(n - i) + abs(h[n - i] - h[n])
dp[n] = min(dp[n], cost)
return dp[n]
print(solve(N-1))
Submission Info
| Submission Time | |
|---|---|
| Task | B - Frog 2 |
| User | maebaru |
| Language | Python (3.8.2) |
| Score | 0 |
| Code Size | 633 Byte |
| Status | TLE |
| Exec Time | 2209 ms |
| Memory | 105932 KiB |
Judge Result
| Set Name | All | ||||
|---|---|---|---|---|---|
| Score / Max Score | 0 / 100 | ||||
| Status |
|
| Set Name | Test Cases |
|---|---|
| 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 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 26 ms | 9000 KiB |
| 0_01 | AC | 19 ms | 9188 KiB |
| 0_02 | AC | 17 ms | 9000 KiB |
| 0_03 | AC | 24 ms | 9124 KiB |
| 1_00 | AC | 23 ms | 9192 KiB |
| 1_01 | AC | 23 ms | 9056 KiB |
| 1_02 | AC | 178 ms | 104660 KiB |
| 1_03 | TLE | 2209 ms | 105704 KiB |
| 1_04 | AC | 180 ms | 105724 KiB |
| 1_05 | AC | 222 ms | 105172 KiB |
| 1_06 | AC | 310 ms | 105932 KiB |
| 1_07 | AC | 467 ms | 104528 KiB |
| 1_08 | AC | 784 ms | 104740 KiB |
| 1_09 | AC | 1420 ms | 104588 KiB |
| 1_10 | TLE | 2209 ms | 104336 KiB |
| 1_11 | TLE | 2209 ms | 104436 KiB |