結果

問題 No.462 6日知らずのコンピュータ
ユーザー siman
提出日時 2021-11-18 15:10:25
言語 Ruby
(3.4.1)
結果
AC  
実行時間 112 ms / 2,000 ms
コード長 385 bytes
コンパイル時間 731 ms
コンパイル使用メモリ 7,168 KB
実行使用メモリ 12,160 KB
最終ジャッジ日時 2024-12-26 05:34:00
合計ジャッジ時間 12,366 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 84
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

N, K = gets.split.map(&:to_i)
MOD = 10 ** 9 + 7

if K == 0
  puts (1..N).inject(:*) % MOD
  exit
end

A = gets.split.map(&:to_i).sort
A << 2 ** N - 1
ans = 1
mask = 0

A.each do |a|
  cnt = 0

  N.times do |i|
    ans = 0 if mask[i] == 1 && a[i] == 0
    cnt += 1 if mask[i] == 0 && a[i] == 1
  end

  mask |= a
  v = [1, cnt].max
  ans *= (1..v).inject(:*)
  ans %= MOD
end

puts ans
0