結果
| 問題 |
No.462 6日知らずのコンピュータ
|
| コンテスト | |
| ユーザー |
JunOnuma
|
| 提出日時 | 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)
JunOnuma