結果
問題 | No.1259 スイッチ |
ユーザー |
![]() |
提出日時 | 2020-10-16 22:26:32 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 1,359 ms / 2,000 ms |
コード長 | 667 bytes |
コンパイル時間 | 927 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 12,288 KB |
最終ジャッジ日時 | 2024-07-20 22:31:34 |
合計ジャッジ時間 | 17,323 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 61 |
コンパイルメッセージ
Syntax OK
ソースコード
MOD = 10**9 + 7 class Integer def modpow(n) if n.zero? 1 elsif n.odd? self * self.modpow(n - 1) % MOD else (self * self % MOD).modpow(n / 2) end end def inverse self.modpow(MOD - 2) end end def nPr(n, r) value = 1 r.times do |i| value = value * (n - i) % MOD end value end def fact(n) nPr(n, n) end n, k, m = gets.split.map(&:to_i) one = 0 (1 .. n).each do |i| if k % i == 0 one += nPr(n - 1, i - 1) * n.modpow(n - i) end end one %= MOD if m == 1 puts one else puts ((n.modpow(n) - one) * (n - 1).inverse) % MOD end