結果
問題 | No.1552 Simple Dice Game |
ユーザー | unyon_maru65536 |
提出日時 | 2021-06-18 21:06:35 |
言語 | Rust (1.77.0 + proconio) |
結果 |
AC
|
実行時間 | 266 ms / 2,500 ms |
コード長 | 884 bytes |
コンパイル時間 | 13,784 ms |
コンパイル使用メモリ | 396,396 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-22 19:39:30 |
合計ジャッジ時間 | 18,311 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
6,816 KB |
testcase_01 | AC | 1 ms
6,816 KB |
testcase_02 | AC | 1 ms
6,812 KB |
testcase_03 | AC | 225 ms
6,944 KB |
testcase_04 | AC | 1 ms
6,940 KB |
testcase_05 | AC | 1 ms
6,940 KB |
testcase_06 | AC | 0 ms
6,940 KB |
testcase_07 | AC | 1 ms
6,940 KB |
testcase_08 | AC | 1 ms
6,944 KB |
testcase_09 | AC | 196 ms
6,940 KB |
testcase_10 | AC | 222 ms
6,944 KB |
testcase_11 | AC | 227 ms
6,944 KB |
testcase_12 | AC | 69 ms
6,944 KB |
testcase_13 | AC | 194 ms
6,940 KB |
testcase_14 | AC | 116 ms
6,940 KB |
testcase_15 | AC | 141 ms
6,940 KB |
testcase_16 | AC | 21 ms
6,944 KB |
testcase_17 | AC | 37 ms
6,944 KB |
testcase_18 | AC | 183 ms
6,940 KB |
testcase_19 | AC | 258 ms
6,940 KB |
testcase_20 | AC | 255 ms
6,944 KB |
testcase_21 | AC | 260 ms
6,944 KB |
testcase_22 | AC | 263 ms
6,940 KB |
testcase_23 | AC | 266 ms
6,940 KB |
コンパイルメッセージ
warning: unused import: `fastout` --> src/main.rs:1:16 | 1 | use proconio::{fastout, input}; | ^^^^^^^ | = note: `#[warn(unused_imports)]` on by default warning: variable does not need to be mutable --> src/main.rs:9:17 | 9 | let mut t = pow_mod(n, k / 2, m); | ----^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` on by default warning: variable `N` should have a snake case name --> src/main.rs:21:9 | 21 | N: usize, | ^ help: convert the identifier to snake case: `n` | = note: `#[warn(non_snake_case)]` on by default warning: variable `M` should have a snake case name --> src/main.rs:22:9 | 22 | M: usize, | ^ help: convert the identifier to snake case: `m`
ソースコード
use proconio::{fastout, input}; const MOD: usize = 998244353; fn pow_mod(n: usize, k: usize, m: usize) -> usize { match k { 0 => 1, _ if k % 2 == 0 => { let mut t = pow_mod(n, k / 2, m); (t * t) % m } _ => (pow_mod(n, k - 1, m) * n) % m, } } fn main(){ input! { N: usize, M: usize, } let mut p_mod = vec![0;500005]; for i in 0..M+1{ p_mod[i] = pow_mod(i,N,MOD); } let mut ans = 0; for d in 1..M{ let mut tmp = p_mod[d + 1] + 2*(MOD - p_mod[d]) + p_mod[d - 1]; tmp %= MOD; tmp = (tmp * d) % MOD; tmp = (tmp * (M - d)) % MOD; ans += tmp; ans %= MOD; } let mut n = N; n %= MOD; ans *= n; ans %= MOD; ans *= M + 1; ans %= MOD; ans *= 499122177; ans %= MOD; println!("{}",ans); }