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

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

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

빼빼로 포장

문제로 돌아가기

해설

Fi=(Bi,Ui)F_i=(B_i,U_i)Fi​=(Bi​,Ui​)를 앞 iii개의 빼빼로로 만들 수 있는 최적 상태라 하자. BiB_iBi​는 상자 수이고 UiU_iUi​는 사용량이다. 비교할 때 BiB_iBi​가 큰 상태, 같다면 UiU_iUi​가 작은 상태를 고른다. iii번 빼빼로를 쓰지 않으면 Fi−1F_{i-1}Fi−1​을 유지한다. 마지막 상자가 (k+1)(k+1)(k+1)번부터 iii번까지라면 누적 합 Qi−Qk≥XQ_i-Q_k\geq XQi​−Qk​≥X이고 후보는 (Bk+1,Uk+i−k)(B_k+1,U_k+i-k)(Bk​+1,Uk​+i−k)이다. 마지막 상자를 고정하면 앞부분도 최적이어야 하므로 이 점화식은 모든 해를 빠짐없이 고려한다. 첫 서브태스크는 모든 kkk를 확인하여 O(N2)O(N^2)O(N2)에 해결한다. 전체 풀이에서는 양의 무게 때문에 QiQ_iQi​가 증가한다는 사실을 쓴다. Qk≤Qi−XQ_k\leq Q_i-XQk​≤Qi​−X인 인덱스가 차례로 후보에 들어오므로 포인터로 각각 한 번만 추가한다. 후보 중 BkB_kBk​가 최대이고 그중 Uk−kU_k-kUk​−k가 최소인 상태 하나만 유지하면 된다. 각 iii에서 그 상태와 Fi−1F_{i-1}Fi−1​을 비교한다. 시간 O(N)O(N)O(N), 공간 O(N)O(N)O(N)이다.

Solution written by GPT6.1