結果

問題 No.1950 片道きゃっちぼーる
ユーザー noriocnorioc
提出日時 2024-07-13 19:54:40
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 476 bytes
コンパイル時間 396 ms
コンパイル使用メモリ 82,152 KB
実行使用メモリ 405,040 KB
最終ジャッジ日時 2024-07-13 19:54:55
合計ジャッジ時間 13,826 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 36 ms
52,236 KB
testcase_01 AC 36 ms
52,620 KB
testcase_02 AC 36 ms
53,028 KB
testcase_03 AC 863 ms
315,768 KB
testcase_04 WA -
testcase_05 AC 35 ms
52,824 KB
testcase_06 AC 650 ms
310,736 KB
testcase_07 AC 239 ms
166,024 KB
testcase_08 AC 312 ms
165,848 KB
testcase_09 WA -
testcase_10 AC 365 ms
165,680 KB
testcase_11 AC 305 ms
165,580 KB
testcase_12 AC 310 ms
165,452 KB
testcase_13 AC 364 ms
141,100 KB
testcase_14 WA -
testcase_15 WA -
testcase_16 AC 798 ms
240,700 KB
testcase_17 AC 37 ms
52,952 KB
testcase_18 AC 372 ms
164,180 KB
testcase_19 WA -
testcase_20 AC 299 ms
165,584 KB
testcase_21 WA -
testcase_22 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
sys.setrecursionlimit(10 ** 6)

INF = 1 << 60
N = int(input())
X = list(map(int, input().split()))
A = list(map(int, input().split()))

m = {x: a for x, a in zip(X, A)}

memo = {}
def f(x: int, used) -> int:
    if x in memo: return memo[x]
    if x not in m: return 0
    if x in used: return -INF
    used.add(x)

    d = m[x]
    res = max(f(x-d, used) - d, f(x+d, used) + d)
    memo[x] = res
    return res


for x in X:
    used = set()
    print(f(x, used))
0