提出 #31262514
ソースコード 拡げる
INF = 10 ** 9
d, n = map(int, input().split())
t = [int(input()) for i in range(d)]
a = [0] * n
b = [0] * n
c = [0] * n
for i in range(n):
a[i], b[i], c[i] = map(int, input().split())
dp = [[0] * n for i in range(d)]
# dp[i][j] = i 日目に服 j を着る場合の i 日目までのスコア
for i in range(n):
if not (a[i] <= t[0] <= b[i]):
dp[0][i] = -INF
for i in range(1, d):
for j in range(n):
if not (a[j] <= t[i] <= b[j]):
dp[i][j] = -INF
else:
for k in range(n):
dp[i][j] = max(dp[i][j], dp[i - 1][k] + abs(c[k] - c[j]))
print(max(dp[d - 1]))
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - 暑い日々 (Hot days) |
| ユーザ | Pro_ktmr |
| 言語 | PyPy3 (7.3.0) |
| 得点 | 100 |
| コード長 | 647 Byte |
| 結果 | AC |
| 実行時間 | 116 ms |
| メモリ | 74456 KiB |
ジャッジ結果
| セット名 | set01 | set02 | set03 | set04 | set05 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | ||||||||||
| 結果 |
|
|
|
|
|
| セット名 | テストケース |
|---|---|
| set01 | data1 |
| set02 | data2 |
| set03 | data3 |
| set04 | data4 |
| set05 | data5 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| data1 | AC | 64 ms | 61904 KiB |
| data2 | AC | 56 ms | 62148 KiB |
| data3 | AC | 115 ms | 74388 KiB |
| data4 | AC | 114 ms | 74332 KiB |
| data5 | AC | 116 ms | 74456 KiB |