結果
| 問題 | No.3683 サーバー代がもったいない! |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-05 13:39:04 |
| 言語 | Python3 (3.14.7 + numpy 2.5.2 + scipy 1.18.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 906 bytes |
| 記録 | |
| コンパイル時間 | 1,014 ms |
| コンパイル使用メモリ | 21,340 KB |
| 実行使用メモリ | 223,184 KB |
| 最終ジャッジ日時 | 2026-09-05 13:40:53 |
| 合計ジャッジ時間 | 31,686 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 WA * 1 |
ソースコード
import sys
import math
# 入力高速化
#input = sys.stdin.readline
# 再帰回数上限
sys.setrecursionlimit(10**9)
# よくあるmod
#MOD = 1000000007
MOD = 998244353
def is_inside(y, x, h, w):
return (0 <= y < h and 0 <= x < w)
def solve():
N, K = map(int, input().split(' '))
A = list(map(int, input().split(' ')))
if K > (N+1) // 2:
print("Impossible")
return
dp = [[-10**18] * (K+1) for _ in range(N+1)]
dp[0][0] = 0
for i in range(N):
dp[i+1][0] = dp[i][0]
if i == 0:
dp[i+1][1] = A[i]
for k in range(K):
dp[i+1][k+1] = max(dp[i][k+1], dp[i+1][k+1])
if i >= 1:
dp[i+1][k+1] = max(dp[i+1][k+1], dp[i-1][k] + A[i])
ans = -1
for i in range(N+1):
ans = max(ans, dp[i][K])
print(ans)
if __name__ == '__main__':
T = 1
for _ in range(T):
solve()