結果

問題 No.3428 Palindromic Path (Easy)
コンテスト
ユーザー elphe
提出日時 2026-01-11 15:09:25
言語 Rust
(1.92.0 + proconio + num)
結果
AC  
実行時間 3 ms / 2,000 ms
コード長 866 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 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
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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
}
0