AtCoder Beginner Contest 302 D - Impartial Giftの解答

atcoder.jp

・参考:
Editorial - TOYOTA MOTOR CORPORATION Programming Contest 2023#2 (AtCoder Beginner Contest 302)Editorial - TOYOTA MOTOR CORPORATION Programming Contest 2023#2 (AtCoder Beginner Contest 302)

・考え方:A,Bをソートして、B[i]+D(B[i]

import bisect

N,M,D=map(int,input().split())
A=list(map(int,input().split()))
B=list(map(int,input().split()))

A.sort()
B.sort()
ans=-1

for i in range(M):
  a=bisect.bisect_right(A,B[i]+D)-1
  if a>=0 and abs(A[a]-B[i])<=D:
    ans=max(ans,A[a]+B[i])
print(ans)