주간 기록
https://www.acmicpc.net/problem/25558a=map(int,open(0).read().split())n,sx,sy,ex,ey=[next(a) for _ in range(5)]i=1mn=float('inf')r=0while True: m=next(a) d=0 px,py=sx,sy for _ in range(m): cx,cy=next(a),next(a) d+=abs(cx-px)+abs(cy-py) px,py=cx,cy d+=abs(ex-px)+abs(ey-py) if mn>d: mn=d r=i if i==n: break i+=1print(r)def s(): a=..
2026. 2. 6.
구간 최댓값 세그먼트 트리
2357번: 최솟값과 최댓값문제 상황길이 $N$인 배열이 주어졌을 때, 구간 $[l, r]$의 최댓값을 빠르게 구해야 한다.방법전처리쿼리브루트포스$O(1)$$O(N)$세그먼트 트리$O(N)$$O(\log N)$핵심 아이디어배열을 이진 트리 형태로 분할하여, 각 노드가 해당 구간의 최댓값을 저장한다. 쿼리 시 필요한 구간만 방문하므로 $O(\log N)$에 처리된다.예) 배열 [2, 5, 1, 4, 9, 3] 9 [0,5] / \ 5 [0,2] 9 [3,5] / \ / \ 5[0,1] 1[2,2] 9[3,4] 3[5,5] / \ / \ 2[0] 5[1] 4[3] 9[4]구현1..
2026. 1. 23.