結果
| 問題 |
No.794 チーム戦 (2)
|
| コンテスト | |
| ユーザー |
双六
|
| 提出日時 | 2020-07-21 22:57:53 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 966 bytes |
| コンパイル時間 | 410 ms |
| コンパイル使用メモリ | 82,272 KB |
| 実行使用メモリ | 218,144 KB |
| 最終ジャッジ日時 | 2024-12-31 12:28:59 |
| 合計ジャッジ時間 | 37,758 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 TLE * 13 |
ソースコード
import sys; input = sys.stdin.buffer.readline
sys.setrecursionlimit(10**7)
from collections import defaultdict
con = 10 ** 9 + 7; INF = float("inf")
import bisect
def getlist():
return list(map(int, input().split()))
def inverse(N, mod):
return (pow(N, mod - 2, mod))
#処理内容
def main():
N, K = getlist()
n = int(N // 2)
A = list(sorted(getlist()))
ans = 1
stop = None
for i in range(n):
ind = N - 1 - i
ind2 = bisect.bisect_left(A, K - A[ind] + 1) - 1
if ind2 < ind:
if ind2 + 1 - i > 0:
ans = (ans * (ind2 + 1 - i)) % con
else:
ans = 0
stop = INF
break
else:
stop = n - i
break
if stop == INF:
print(0)
return
elif stop == None:
print(ans)
return
for i in range(1, 2 * stop + 1):
ans *= i
ans %= con
inv_2 = inverse(2, con)
for i in range(stop):
ans *= inv_2
ans % con
for i in range(1, stop + 1):
ans *= inverse(i, con)
ans %= con
print(ans)
if __name__ == '__main__':
main()
双六