做不对一点
2025-07-29 12:23:24
发布于:上海
10阅读
0回复
0点赞
import sys
MOD = 10**9 + 7
def solve():
n, k = map(int, sys.stdin.readline().split())
l = list(map(int, sys.stdin.readline().split()))
l.sort()
fact = [1] * (n + 1)
inv_fact = [1] * (n + 1)
for i in range(1, n + 1):
fact[i] = fact[i-1] * i % MOD
inv_fact[n] = pow(fact[n], MOD-2, MOD)
for i in range(n-1, -1, -1):
inv_fact[i] = inv_fact[i+1] * (i+1) % MOD
res = 0
left = 0
right = n - 1
while left <= right:
if l[left] + l[right] >= k:
res += right - left
right -= 1
else:
left += 1
if res == 0:
print(0)
else:
ans = fact[n] * inv_fact[n - res] % MOD
print(ans)
简单,太简单了
这里空空如也
有帮助,赞一个