DOJ logoDOJ
Problems
Recently added problemsSaved problems
CategoriesDLCContestsGroupsTeamsBoard
Ranking
Solved Problem RankingStreak rankingDOJ Power ranking
Status
Call for TasksLoginRegister
DOJ logoDOJ

Community online judge with OI-style subtask scoring, Elo ratings, and Discord-backed certification.

Problems
ProblemsCategories
Community
ContestsRankingBoardNoticesHost an external contestGuide
Account
LoginRegisterJudge Status
Policy
Terms of ServiceDLC RulesPrivacyAPI documentationLanguage runtimesContest rank rewardsRating and performance
© 2026 DOJ
All rights reserved
Editorial

zzzzzz just use cream

Back to problem

Editorial

현재 온라인 마켓에 있는 상품을 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