結果

問題 No.1631 Sorting Integers (Multiple of K) Easy
ユーザー yuruhiya
提出日時 2021-08-07 14:20:44
言語 Crystal
(1.14.0)
結果
AC  
実行時間 1,268 ms / 3,000 ms
コード長 385 bytes
コンパイル時間 12,670 ms
コンパイル使用メモリ 295,708 KB
実行使用メモリ 140,504 KB
最終ジャッジ日時 2024-09-18 18:10:03
合計ジャッジ時間 28,844 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 28
権限があれば一括ダウンロードができます

ソースコード

diff #

n, k = read_line.split.map(&.to_i)
c = read_line.split.map(&.to_i)
digits = (1..9).flat_map { |x| [x] * c[x - 1] }

dp = Array.new(2**n) { [0i64] * k }
dp[0][0] = 1
(0...2**n).each { |set| (0...k).each { |r| (0...n).each { |i|
  dp[set | (1 << i)][(r * 10 + digits[i]) % k] += dp[set][r] if set.bit(i) == 0
} } }

ans = dp.last[0]
c.each { |c| (1..c).each { |x| ans //= x } }
puts ans
0