靈茶之二分02
題目連結
https://codeforces.com/problemset/problem/1538/C
題目大意
輸入 T(≤104) 表示 T 組資料。所有資料的 n 之和 ≤2e5。 每組資料輸入 n(1≤n≤2e5) L R(1≤L≤R≤1e9) 和長為 n 的陣列 a(1≤a[i]≤1e9)。 輸出有多少對 (i, j) 滿足 i < j 且 L <= a[i] + a[j] <= R。
程式碼
from bisect import bisect_left,bisect_right
for _ in range(int(input())):
n,L,R = map(int,input().split())
a = [*map(int,input().split())]
a.sort()
ans = 0
for i,x in enumerate(a):
ans += (bisect_right(a,R - x,0,i) - bisect_left(a,L - x,0,i))
print(ans)