[파이썬] 백준 13334번 철로
작성:
백준 #13334 철로
# 집과 사무실의 위치 모두 철로 선분에 포함되는 최대 사람 수
# 출력: 선분에 포함되는 최대 사람들의 수
# 체크할 조건
# 사람수 1 <= n <= 100000
# -1억 <= hi, oi <= 1억
# 철로 길이 1 <= d <= 2억
# 정렬해서 라인 스위핑.
# 끝 위치 기준으로 정렬.
# 선분 범위에 들어오면 heap에 넣는다.
# 선분 범위에 들어올 때까지 heappop
# heap의 크기로 최대 사람 수를 갱신한다.
import sys
input = sys.stdin.readline
from heapq import heappush, heappop
def solution(n):
lst = [sorted(list(map(int, input().split()))) for i in range(n)]
lst.sort(key=lambda x: x[1])
d = int(input())
result = -1
heap = []
for s, e in lst:
lim = e - d
if s >= lim:
heappush(heap, s)
while heap and heap[0] < lim:
heappop(heap)
result = max(result, len(heap))
print(result)
if __name__ == '__main__':
solution(int(input()))
댓글남기기