結果

問題 No.2926 Botaoshi
ユーザー Daichi01240124Daichi01240124
提出日時 2024-10-12 16:08:38
言語 Rust
(1.77.0 + proconio)
結果
AC  
実行時間 21 ms / 2,000 ms
コード長 2,002 bytes
コンパイル時間 13,255 ms
コンパイル使用メモリ 377,508 KB
実行使用メモリ 13,908 KB
最終ジャッジ日時 2024-10-12 16:08:54
合計ジャッジ時間 15,273 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
6,816 KB
testcase_01 AC 1 ms
6,820 KB
testcase_02 AC 1 ms
6,816 KB
testcase_03 AC 1 ms
6,820 KB
testcase_04 AC 1 ms
6,816 KB
testcase_05 AC 1 ms
6,820 KB
testcase_06 AC 1 ms
6,820 KB
testcase_07 AC 1 ms
6,820 KB
testcase_08 AC 1 ms
6,816 KB
testcase_09 AC 1 ms
6,820 KB
testcase_10 AC 1 ms
6,816 KB
testcase_11 AC 1 ms
6,820 KB
testcase_12 AC 19 ms
13,832 KB
testcase_13 AC 19 ms
13,512 KB
testcase_14 AC 18 ms
13,444 KB
testcase_15 AC 1 ms
6,816 KB
testcase_16 AC 16 ms
10,112 KB
testcase_17 AC 19 ms
12,172 KB
testcase_18 AC 5 ms
6,816 KB
testcase_19 AC 12 ms
8,576 KB
testcase_20 AC 6 ms
6,816 KB
testcase_21 AC 9 ms
7,168 KB
testcase_22 AC 11 ms
8,320 KB
testcase_23 AC 3 ms
6,816 KB
testcase_24 AC 12 ms
9,344 KB
testcase_25 AC 4 ms
6,816 KB
testcase_26 AC 16 ms
11,008 KB
testcase_27 AC 10 ms
7,424 KB
testcase_28 AC 3 ms
6,820 KB
testcase_29 AC 2 ms
6,820 KB
testcase_30 AC 6 ms
6,816 KB
testcase_31 AC 4 ms
6,816 KB
testcase_32 AC 8 ms
6,816 KB
testcase_33 AC 15 ms
10,292 KB
testcase_34 AC 13 ms
8,960 KB
testcase_35 AC 1 ms
6,816 KB
testcase_36 AC 20 ms
13,764 KB
testcase_37 AC 19 ms
13,780 KB
testcase_38 AC 20 ms
13,908 KB
testcase_39 AC 19 ms
13,760 KB
testcase_40 AC 19 ms
13,728 KB
testcase_41 AC 21 ms
13,804 KB
testcase_42 AC 21 ms
13,652 KB
testcase_43 AC 20 ms
13,780 KB
testcase_44 AC 19 ms
13,424 KB
testcase_45 AC 20 ms
13,148 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#![allow(non_snake_case)]
#![allow(unused_imports)]
#![allow(unused_macros)]
#![allow(clippy::needless_range_loop)]
#![allow(clippy::comparison_chain)]
#![allow(clippy::nonminimal_bool)]
#![allow(clippy::neg_multiply)]
#![allow(dead_code)]
#![allow(clippy::collapsible_else_if)]
use proconio::{
    fastout, input, input_interactive,
    marker::{Chars, Usize1},
};
use std::cmp::Reverse;
use std::collections::BinaryHeap;
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque};
use std::mem::swap;

//const MOD: usize = 1e9 as usize + 7;
const MOD: usize = 998244353;
// const MOD: usize = 2147483647;

#[macro_export]
macro_rules! max {
    ($x: expr) => ($x);
    ($x: expr, $( $y: expr ),+) => {
        std::cmp::max($x, max!($( $y ),+))
    }
}
#[macro_export]
macro_rules! min {
    ($x: expr) => ($x);
    ($x: expr, $( $y: expr ),+) => {
        std::cmp::min($x, min!($( $y ),+))
    }
}
fn main() {
    input! {
        N:usize,
        S:Chars,
    }
    let _mod: usize = 998244353;
    let mut dp = vec![vec![0; 3]; N];
    if S[0] == 'L' {
        dp[0] = vec![1, 0, 0];
    } else if S[0] == 'R' {
        dp[0] = vec![0, 1, 0];
    } else if S[0] == 'U' {
        dp[0] = vec![0, 0, 1];
    } else {
        dp[0] = vec![1, 1, 1];
    }
    if N > 1 {
        for i in 1..N {
            dp[i][0] = dp[i - 1][0] + dp[i - 1][2];
            dp[i][1] = dp[i - 1][0] + dp[i - 1][1] + dp[i - 1][2];
            dp[i][2] = dp[i - 1][0] + dp[i - 1][1] + dp[i - 1][2];
            dp[i][0] %= _mod;
            dp[i][1] %= _mod;
            dp[i][2] %= _mod;
            if S[i] == 'L' {
                dp[i][1] = 0;
                dp[i][2] = 0;
            } else if S[i] == 'R' {
                dp[i][0] = 0;
                dp[i][2] = 0;
            } else if S[i] == 'U' {
                dp[i][0] = 0;
                dp[i][1] = 0;
            }
        }
    }
    let mut ans = dp[N - 1][0] + dp[N - 1][1] + dp[N - 1][2];
    ans %= _mod;
    println!("{}", ans);
}
0