DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

히스토그램에서 가장 큰 직사각형 리턴즈

문제로 돌아가기

해설

너비 www인 한 구간의 모든 막대 높이를 hhh 이상으로 만들 수 있는지 생각하자. 이 구간에는 BBB에서 가장 큰 www개만 쓰면 충분하다. 구간의 AAA를 오름차순, 선택한 BBB를 내림차순으로 짝지었을 때 모든 합이 hhh 이상이면 가능하고, 그렇지 않으면 어떤 짝짓기도 불가능하다.

각 AiA_iAi​에 대해 Ai+Bj≥hA_i+B_j \geq hAi​+Bj를 만족하는 의 개수를 라 하자. 길이 인 구간의 들을 오름차순으로 정렬한 값을 라 하면 가능할 필요충분조건은 모든 에 대해 인 것이다.

슬라이딩 윈도우에서 rir_iri​의 빈도를 관리한다. Dk=#{i:ri≤k}−kD_k=\#\{i:r_i\leq k\}-kDk​=#{i:라 두면 조건은 모든 이다. 값 의 최대 접두사 합을 저장하는 세그먼트 트리를 사용하면 원소 추가와 삭제, 조건 확인을 각각 에 할 수 있다.

각 너비 www에 대해 가능한 최대 높이 hhh를 이분 탐색하고 whwhwh의 최댓값을 취한다. 시간 복잡도는 O(N2log⁡Nlog⁡V)O(N^2\log N\log V)O(N2logN이다.

​
≥
h
BjB_jBj​
rir_iri​
www
rir_iri​
r(1),⋯ ,r(w)r_{(1)},\cdots,r_{(w)}r(1)​,⋯,r(w)​
kkk
r(k)≥kr_{(k)} \geq kr(k)​≥k
ri​≤
k}−
k
Dk≤0D_k\leq0Dk​≤0
cnt0,cnt1−1,⋯ ,cntw−1\mathrm{cnt}_0,\mathrm{cnt}_1-1,\cdots,\mathrm{cnt}_w-1cnt0​,cnt1​−1,⋯,cntw​−1
O(log⁡N)O(\log N)O(logN)
log
V
)