S의 요소인 좌우값 사이에 자리를 찾고 N의 왼쪽 오른쪽의 경우의수를 계산하는 문제이다.
import sys
input = sys.stdin.readline
from bisect import bisect
L = int(input())
AB_list = list(map(int,input().split()))
AB_list.sort()
N = int(input())
if N < AB_list[0]:
answer = max(0,(AB_list[0]-N)*(N)-1)
else:
index= bisect(AB_list,N)
answer = max(0,(AB_list[index]-N)*(N-AB_list[index-1])-1)
print(answer)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 1562 계단수 (0) | 2021.07.30 |
---|---|
[백준][Python] 4095 최대정사각형 (0) | 2021.07.30 |
[백준][Python] 14930 쉬운최단거리 (0) | 2021.07.30 |
[백준][Python] 2211 네트워크복구 (0) | 2021.07.30 |
[백준][Python] 14003 가장 긴 증가하는 부분수열 5 : 이분탐색과 인덱스 (0) | 2021.07.29 |