結果

問題 No.2656 XOR Slimes
ユーザー LyricalMaestro
提出日時 2025-10-04 03:04:27
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 888 bytes
コンパイル時間 587 ms
コンパイル使用メモリ 82,652 KB
実行使用メモリ 76,812 KB
最終ジャッジ日時 2025-10-04 03:04:46
合計ジャッジ時間 18,018 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 3 WA * 52
権限があれば一括ダウンロードができます

ソースコード

diff #

## https://yukicoder.me/problems/no/2656

MAX_VALUE = 10 ** 18

def main():
    N = int(input())
    X = list(map(int, input().split()))
    A = list(map(int, input().split()))

    cum_x_list = [0] * (N + 1)
    cum_x = 0
    for i in range(N):
        cum_x += X[i]
        cum_x_list[i + 1] = cum_x

    dp = [MAX_VALUE] * (N + 1)
    dp[0] = 0
    for i in range(N):
        a = 0
        for j in reversed(range(i + 1)):
            a ^= A[j]

            num = i - j + 1
            x = num // 2 + j
            x_left = x - j + 1
            x_right = i - x
            value_left = x_left * X[x] - (cum_x_list[x + 1] - cum_x_list[j])
            value_right = (cum_x_list[i + 1] - cum_x_list[x + 1]) - x_right * X[x]
            cost =  value_left + value_right
            dp[i + 1] = min(dp[i + 1], dp[j] + a + cost)
    print(dp[-1])






if __name__ == "__main__":
    main()
0