結果
問題 |
No.3185 Three Abs
|
ユーザー |
|
提出日時 | 2025-06-15 13:08:19 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 880 bytes |
コンパイル時間 | 303 ms |
コンパイル使用メモリ | 82,600 KB |
実行使用メモリ | 139,764 KB |
最終ジャッジ日時 | 2025-06-15 13:08:35 |
合計ジャッジ時間 | 14,753 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | WA * 30 |
ソースコード
n_sum = 0 def solve(): n = int(input()) a = list(map(int, input().split())) assert 3 <= n <= 2 * 10 ** 5 assert all(-10**9 <= x <= 10**9 for x in a) global n_sum n_sum += n assert n_sum <= 5 * 10 ** 5 inf = 10**18 dp = [[[-inf] * (n + 1) for _ in range(3)] for _ in range(2)] dp[0][0][0] = 0 dp[0][0][1] = 0 for i, x in enumerate(a): for j in range(3): dp[0][j][i + 1] = dp[0][j][i] + x dp[1][j][i + 1] = dp[1][j][i] - x if i > 0: for j in range(2): dp[0][j + 1][i + 1] = max(dp[0][j + 1][i + 1], dp[0][j][i] + x, dp[1][j][i] + x) dp[1][j + 1][i + 1] = max(dp[1][j + 1][i + 1], dp[0][j][i] - x, dp[1][j][i] - x) ans = max(dp[0][2][n], dp[1][2][n]) print(ans) t = int(input()) assert 1 <= t <= 10 ** 5 for _ in range(t): solve()