結果
| 問題 | No.3683 サーバー代がもったいない! |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-05 13:55:17 |
| 言語 | Rust (1.97.1 + proconio + num + itertools) |
| 結果 |
AC
|
| 実行時間 | 166 ms / 2,000 ms |
| + 114µs | |
| コード長 | 684 bytes |
| 記録 | |
| コンパイル時間 | 618 ms |
| コンパイル使用メモリ | 182,120 KB |
| 実行使用メモリ | 9,728 KB |
| 最終ジャッジ日時 | 2026-09-05 13:55:53 |
| 合計ジャッジ時間 | 6,043 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge5_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 |
ソースコード
use proconio::input;
const INF: i64 = 1 << 60;
fn main() {
input! {
n: usize,
k: usize,
a: [i64; n],
}
let mut dp = vec![vec![-INF; 2]; k + 1];
dp[0][0] = 0;
for &a_i in &a {
let mut next_dp = vec![vec![-INF; 2]; k + 1];
for j in 0..=k {
next_dp[j][0] = next_dp[j][0].max(dp[j][0]).max(dp[j][1]);
if j < k && dp[j][0] != -INF {
next_dp[j + 1][1] = next_dp[j + 1][1].max(dp[j][0] + a_i);
}
}
dp = next_dp;
}
let ans = dp[k][0].max(dp[k][1]);
if ans == -INF {
println!("Impossible");
} else {
println!("{}", ans);
}
}