提出 #22546963
ソースコード 拡げる
import sys
import numpy as np
input = sys.stdin.readline
def solve(a):
n = a.shape[0]
dp = np.zeros((n + 1, n + 1), dtype=np.int32)
delta = np.abs(a.reshape((1, n)) - a.reshape((n, 1)))
for k in range(2, n + 1, 2):
for i in range(n + 1 - k):
dp[i][i + k] = np.min(dp[i + 1, i + 1: i + k: 2]
+ dp.T[i + k, i + 1 + 1: i + k + 1: 2]
+ delta[i, i + 1: i + k: 2])
return dp[0, n]
def main():
_ = int(input())
a = np.array(list(map(int, input().split())), dtype=np.int32)
print(solve(a))
if __name__ == "__main__":
main()
提出情報
| 提出日時 |
|
| 問題 |
019 - Pick Two(★6) |
| ユーザ |
riantkb |
| 言語 |
Python (3.8.2) |
| 得点 |
6 |
| コード長 |
649 Byte |
| 結果 |
AC |
| 実行時間 |
401 ms |
| メモリ |
28292 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
6 / 6 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_0.txt, 00_sample_1.txt, 00_sample_2.txt, 00_sample_3.txt |
| All |
00_sample_0.txt, 00_sample_1.txt, 00_sample_2.txt, 00_sample_3.txt, 01_cornar_0.txt, 01_cornar_1.txt, 01_cornar_2.txt, 02_random_0.txt, 02_random_1.txt, 02_random_2.txt, 02_random_3.txt, 03_maxima_0.txt, 03_maxima_1.txt, 03_maxima_2.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_0.txt |
AC |
118 ms |
26932 KiB |
| 00_sample_1.txt |
AC |
111 ms |
26692 KiB |
| 00_sample_2.txt |
AC |
110 ms |
27168 KiB |
| 00_sample_3.txt |
AC |
112 ms |
26712 KiB |
| 01_cornar_0.txt |
AC |
108 ms |
27108 KiB |
| 01_cornar_1.txt |
AC |
114 ms |
27012 KiB |
| 01_cornar_2.txt |
AC |
176 ms |
27264 KiB |
| 02_random_0.txt |
AC |
188 ms |
27260 KiB |
| 02_random_1.txt |
AC |
140 ms |
27224 KiB |
| 02_random_2.txt |
AC |
144 ms |
27148 KiB |
| 02_random_3.txt |
AC |
352 ms |
28120 KiB |
| 03_maxima_0.txt |
AC |
401 ms |
28056 KiB |
| 03_maxima_1.txt |
AC |
384 ms |
28292 KiB |
| 03_maxima_2.txt |
AC |
384 ms |
28232 KiB |