結果

問題 No.3458 Scores of Subsequence
コンテスト
ユーザー norioc
提出日時 2026-02-28 15:21:03
言語 Rust
(1.93.0 + proconio + num + itertools)
コンパイル:
/usr/bin/rustc_custom
実行:
./target/release/main
結果
AC  
実行時間 17 ms / 2,000 ms
コード長 1,009 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 8,194 ms
コンパイル使用メモリ 202,572 KB
実行使用メモリ 7,844 KB
最終ジャッジ日時 2026-02-28 15:21:35
合計ジャッジ時間 3,939 ms
ジャッジサーバーID
(参考情報)
judge1 / judge7
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 25
権限があれば一括ダウンロードができます
コンパイルメッセージ
warning: unused import: `std::collections::HashMap`
 --> src/main.rs:4:5
  |
4 | use std::collections::HashMap;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused import: `std::hash::Hash`
 --> src/main.rs:5:5
  |
5 | use std::hash::Hash;
  |     ^^^^^^^^^^^^^^^

ソースコード

diff #
raw source code

#![allow(non_snake_case)]
#![allow(dead_code, unused_macros)]

use std::collections::HashMap;
use std::hash::Hash;
#[allow(unused_imports)]
use proconio::{input, marker::Usize1, marker::Chars};
#[allow(unused_imports)]
use itertools::Itertools;

macro_rules! d {
    ( $( $x:expr ),* $(,)? ) => {
        println!(
            concat!( $( stringify!($x), "={:?} " ),* ),
            $( $x ),*
        );
    };
}

fn mod_pow(base: i64, exp: i64, modulus: i64) -> i64 {
    if exp == 0 { return 1 }
    if exp == 1 { return base % modulus }
    let x = mod_pow(base, exp / 2, modulus);
    if exp & 1 > 0 {
        ((x * base) % modulus) * x % modulus
    } else {
        x * x % modulus
    }
}

const MOD: i64 = 998244353;

fn main() {
    input! {
        S: Chars,
    }

    let mut ans = 0;
    let mut m = 0;
    for c in S {
        if c == 'A' {
            ans += mod_pow(3, m, MOD);
            ans %= MOD;
        } else if c == 'M' {
            m += 1;
        }
    }

    println!("{ans}");
}
0