結果

問題 No.2932 えっえっ嘘嘘嘘待って待って待って???えマジで?ほんとに?マジでやばすぎなんだけど?えっおっほんとにこんなにDPしちゃっていいんですかい???マジでやばすぎなんだけど???
コンテスト
ユーザー tnodino
提出日時 2024-07-27 11:05:51
言語 Rust
(1.97.1 + proconio + num + itertools + ACL)
コンパイル:
/usr/bin/rustc_custom
実行:
./target/release/main
結果
WA  
実行時間 -
コード長 767 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 635 ms
コンパイル使用メモリ 180,936 KB
実行使用メモリ 6,400 KB
最終ジャッジ日時 2026-09-14 14:25:58
合計ジャッジ時間 2,458 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 WA * 1
other AC * 2 WA * 10
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

use proconio::input;
use proconio::fastout;
use ac_library::ModInt1000000007 as Mint;

fn ncr(n: usize, r: usize) -> Mint {
    let mut ret = Mint::new(1);
    for i in n-r+1..=n {
        ret *= i;
    }
    for i in 1..=r {
        ret /= i;
    }
    return ret;
}

fn pow(x: usize, mut k: usize) -> Mint {
    let mut x = Mint::new(x);
    let mut ret = Mint::new(1);
    while k > 0 {
        if k & 1 > 0 {
            ret = ret * x;
        }
        x = x * x;
        k >>= 1;
    }
    return ret;
}

#[fastout]
#[allow(non_snake_case)]
fn main() {
    input! {
        (H, W, M): (usize, usize, usize),
    }
    if H + W - 1 > M {
        println!("0");
    }
    else {
        println!("{}", ncr(H+W-2, H-1) * ncr(M, H+W-1) * pow(M, H*W-H-W+1));
    }
}
0