結果
問題 | No.462 6日知らずのコンピュータ |
ユーザー |
![]() |
提出日時 | 2017-06-09 17:14:04 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 12 ms / 2,000 ms |
コード長 | 663 bytes |
コンパイル時間 | 52 ms |
コンパイル使用メモリ | 7,040 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-22 14:32:36 |
合計ジャッジ時間 | 2,985 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 84 |
ソースコード
def countbit(n): ct = 0 while n != 0: ct += n % 2 n /= 2 return ct def fact(n): if n == 0: return 1 else: return n * fact(n-1) def calc(n,k,l): if k == 0: return fact(n) % (10**9+7) for i in range(1,k): if ((l[i] ^ l[i-1]) & l[i-1]) != 0: return 0 ll = map(countbit, l) ret = fact(ll[0]) % (10**9+7) for i in range(1,k): ret *= fact(ll[i]-ll[i-1]) ret %= 10**9+7 ret *= fact(n-ll[-1]) return ret % (10**9+7) n,k = map(int, raw_input().split()) if k != 0: l = sorted(map(int, raw_input().split())) else: l = [] print calc(n,k,l)