A13 - Close Pairs
https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_m
提出
code: python
n, k = map(int, input().split())
a = list(map(int, input().split()))
a.sort()
ans = 0
# print(a)
# 11, 12, 16, 22, 27, 28, 31
# 0, 6 -> 3,4
# 1, 6 -> 4
# 2, 6 -> 4,5
# 3, 6 -> 5
for i, v in enumerate(a):
l = i+1
r = n-1
while l < r:
mid = ((r-l) // 2) + l # 違う
if amid > v + k:
l = mid
else:
r = mid
print(l)
解答
code: python
n, k = map(int, input().split())
a = list(map(int, input().split()))
# ai 番目の数に対して +k まで進める数
r = None * (n-1)
for i in range(0, n-1):
# スタート地点
if i == 0:
ri = 0
else:
ri = ri - 1
# ギリギリまで増やしていく
while ri < n-1 and a[ri+1] - ai <= k:
ri += 1
# print(r)
# 0-index
# 2, 3, 3, 6, 6, 6
ans = 0
for i in range(0, n-1):
# 最高到達点 - 自分の場所
ans += (ri - i)
print(ans)
提出
code: python
n, k = map(int, input().split())
a = list(map(int, input().split()))
# 11 12 16 22 27 28 31
# 1個ずつ見たら被ってしまう
# 11 12 16
# 12 16 22
# 16 22
# 22 27 28 31