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

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

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

zzzzzz just use cream

문제로 돌아가기

해설

현재 온라인 마켓에 있는 상품을 111번 크림부터 nnn번 크림이라고 하자. 어떤 두 상품 i,ji,ji,j가 Ai<AjA_i < A_jAi​<Aj​이고 Di≤DjD_i \leq D_jDi​≤Dj​를 만족한다면, iii번 크림은 어떤 날짜에서도 jjj번 크림보다 나은 선택이 될 수 없다. 따라서 실제로 사용될 가능성이 있는 크림만 남기면, 남은 크림들은 유통기한 오름차순으로 보았을 때 효과가 엄격히 내림차순이다.

이 남은 크림들의 집합을 CCC라고 하자. C={i1,i2,…,ir}C = \{i_1,i_2,\ldots,i_r\}C={i1​,i2​,…이고 라면, 최적 사용에서는 번 크림을 총 일 동안 사용한다. 여기서 이다. 따라서 실제로 사용한 크림들의 가격 합은

S=∑t=1rPit(Dit−Dit−1)S=\sum_{t=1}^{r} P_{i_t}(D_{i_t}-D_{i_{t-1}})S=t=1∑r​P

이다.

온라인 마켓의 모든 상품 가격 합을 TTT라고 하면, 다다스가 구매한 크림들의 전체 가격 합은 XTXTXT이다. 그러므로 각 2번 질의의 답은 XT−SXT-SXT−S이다.

집합 CCC는 유통기한을 기준으로 정렬된 std::set으로 관리한다. 새 상품 (a,d,p)(a,d,p)(a,d,p)가 추가될 때, CCC에서 유통기한이 ddd 이상인 첫 원소를 찾는다. 이 원소의 효과가 aaa보다 크면 새 상품은 지배되므로 에 넣지 않는다. 그렇지 않으면 유통기한이 이하이면서 효과가 보다 작은 원소들을 뒤에서부터 지운 뒤 새 상품을 삽입한다.

SSS는 각 원소가 자신의 직전 원소와 만드는 구간 길이에 기여하는 값을 이용해 국소적으로 갱신할 수 있다. 원소 하나를 삭제하거나 삽입할 때 영향을 받는 항은 그 원소와 바로 다음 원소의 항뿐이다. 각 상품은 CCC에 최대 한 번 삽입되고 최대 한 번 삭제되므로 전체 시간 복잡도는 O((N+Q)log⁡(N+Q))O((N+Q)\log(N+Q))O((N+Q)log(N+Q))이다.

Solution written by GPT5.5

,
ir​
}
Di1<Di2<⋯<DirD_{i_1} < D_{i_2} < \cdots < D_{i_r}Di1​​<Di2​​<⋯<Dir​​
iti_tit​
Dit−Dit−1D_{i_t}-D_{i_{t-1}}Dit​​−Dit−1​​
Di0=0D_{i_0}=0Di0​​=0
i
t​
​
(
Dit​​
−
Dit−1​​)
CC
C
ddd
aaa