結果
| 問題 | No.3428 Palindromic Path (Easy) |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-01-11 15:09:25 |
| 言語 | Rust (1.92.0 + proconio + num) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 2,000 ms |
| コード長 | 866 bytes |
| 記録 | |
| コンパイル時間 | 26,610 ms |
| コンパイル使用メモリ | 411,968 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2026-01-11 15:11:01 |
| 合計ジャッジ時間 | 26,439 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 6 |
ソースコード
use proconio::{fastout, input, marker::Bytes};
#[fastout]
fn main() {
input! {
n: usize,
c: [Bytes; n],
}
println!("{}", output(solve(c)));
}
fn solve(c: Vec<Vec<u8>>) -> u32 {
fn rec((r, c): (u8, u8), l: &Vec<Vec<u8>>, s: &mut Vec<u8>) -> u32 {
s.push(l[r as usize][c as usize]);
if (r, c) == ((l.len() - 1) as u8, (l.len() - 1) as u8) {
if (0..(s.len() / 2)).all(|i| s[i] == s[s.len() - 1 - i]) {
s.pop();
return 1;
}
}
let mut ans = 0;
if r != (l.len() - 1) as u8 {
ans += rec((r + 1, c), l, s);
}
if c != (l.len() - 1) as u8 {
ans += rec((r, c + 1), l, s);
}
s.pop();
ans
}
rec((0, 0), &c, &mut vec![])
}
fn output(ans: u32) -> u32 {
ans
}