結果
| 問題 |
No.3289 Make More Happy Connection
|
| コンテスト | |
| ユーザー |
Plan8
|
| 提出日時 | 2025-10-18 11:35:59 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 954 bytes |
| コンパイル時間 | 11,727 ms |
| コンパイル使用メモリ | 398,080 KB |
| 実行使用メモリ | 28,936 KB |
| 最終ジャッジ日時 | 2025-10-18 11:36:15 |
| 合計ジャッジ時間 | 15,965 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 21 WA * 3 |
ソースコード
use proconio::input;
fn main() {
input! {
n: usize,
xy: [(u64, u64); n],
}
let mut dp = vec![vec![0; 2]; n + 1];
if xy[0].0 == xy[0].1 {
dp[0][0] = xy[0].0;
dp[0][1] = xy[0].0;
}
for i in 0..n - 1 {
for j in 0..2 {
for k in 0..2 {
dp[i + 1][k] = dp[i + 1][k].max(dp[i][j]);
}
}
let (x, y) = xy[i];
let (x1, y1) = xy[i + 1];
let c = if x == y { x } else { 0 };
if x == x1 {
dp[i + 1][0] = dp[i + 1][0].max(dp[i][1] + c + x);
}
if y == x1 {
dp[i + 1][0] = dp[i + 1][0].max(dp[i][0] + c + y);
}
if x == y1 {
dp[i + 1][1] = dp[i + 1][1].max(dp[i][1] + c + x);
}
if y == y1 {
dp[i + 1][1] = dp[i + 1][1].max(dp[i][0] + c + y);
}
}
let ans = dp[n - 1][0].max(dp[n - 1][1]);
println!("{}", ans);
}
Plan8