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

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

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

빼빼로 처리

문제로 돌아가기

해설

처음 방향이 오른쪽이면 si=1s_i=1si​=1, 아니면 si=0s_i=0si​=0으로 두자. 최종 방향을 같은 방식으로 cic_ici​로 나타내고, iii번 사람이 왼쪽과 오른쪽으로 건넨 횟수를 각각 li,ril_i,r_ili​,ri​라 하자. 방향이 번갈아 바뀌므로 ri−li=si−cir_i-l_i=s_i-c_iri​−li​=si​이다.

Pi=∑j=1iAjP_i=\sum_{j=1}^{i}A_jPi​=∑j=1i​A, 왼쪽 쓰레기통에 들어간 개수를 이라 하자. 각 경계를 지나는 빼빼로의 수를 세면 이다. 경계 조건은 , 이다. 따라서

W=∑i=1NPi−∑i=1Nsi,(N+1)L=W+∑i=1Nci.W=\sum_{i=1}^{N}P_i-\sum_{i=1}^{N}s_i,\qquad (N+1)L=W+\sum_{i=1}^{N}c_i.W=i=1∑N​P

0≤∑ci≤N0\leq\sum c_i\leq N0≤∑ci​≤N이므로 L=⌈W/(N+1)⌉L=\lceil W/(N+1)\rceilL=⌈W/(N이며 최종 오른쪽 방향의 수는 이다.

왼쪽부터 lil_ili​와 아직 정하지 않은 오른쪽 방향의 수 KKK를 유지한다. K>0K>0K>0, li+si≥1l_i+s_i\geq1l, 이면 로 정하고 를 1 줄인다. 그렇지 않으면 이다. 이후 , 로 갱신한다. 정답은 이다.

이 그리디의 타당성을 보자. Yi=∑j≤icjY_i=\sum_{j\leq i}c_jYi​=∑j≤i​cj​, , 라 하면 비음수 조건은

Yi≤Ui=iL−Qi−1+Hi+min⁡(0,L−Pi)Y_i\leq U_i=iL-Q_{i-1}+H_i+\min(0,L-P_i)Yi​≤Ui​=iL

이다. PiP_iPi​가 단조 증가하므로 UiU_iUi​는 먼저 단조 증가한 뒤 단조 감소하며 마지막 값은 처음 구한 최종 오른쪽 방향의 수이다. 따라서 그 수를 넘지 않으면서 현재 가능한 1을 먼저 선택해도 뒤의 상한을 위반하지 않는다. 가능한 최종 상태와 접두사별로 비교하면 그리디는 그 상태보다 1을 늦게 선택하지 않으므로 정확한 개수의 1을 선택한다. 모든 li,ril_i,r_il가 비음수이고 양 끝 경계 조건도 성립한다.

구한 횟수가 실제 실행과 일치함도 확인해야 한다. 한 사람이 마지막으로 건넨 방향은 최종 방향의 반대이다. 일렬 그래프에서 마지막 전달 방향이 만드는 순환은 이웃한 두 사람의 최종 방향이 왼쪽, 오른쪽인 경우뿐이다. 그리디가 이 전환을 만들었다면 ri=0r_i=0ri​=0 또는 li+1=0l_{i+1}=0li+1​=이므로 두 사람 중 한 명은 한 번도 행동하지 않았다. 따라서 행동한 사람들 사이에는 마지막 전달 방향의 순환이 없다.

임의의 합법적인 실행은 구한 횟수를 초과할 수 없다. 처음으로 횟수를 초과하려는 사람은 이웃에게서 받은 수가 예정된 수 이하이므로 빼빼로를 가지고 있지 않다. 반대로 실행이 끝났는데 예정된 전달이 남아 있다면, 남은 전달들은 각 사람에서 유입과 유출이 같고 쓰레기통으로 나가지 않는다. 남은 마지막 전달을 따라가면 순환이 생겨 앞의 성질과 모순된다. 따라서 모든 합법적인 실행의 행동 횟수가 같으며, 구한 합이 최솟값이다.

시간 복잡도는 O(N)O(N)O(N), 공간 복잡도는 O(N)O(N)O(N)이다. 합을 저장할 때는 64비트 정수를 사용한다. C=∑AiC=\sum A_iC=∑Ai​라 하면 이므로 정답은 이하이다.

Solution written by GPT6.1

−
ci​
j
​
LLL
ri−li+1=Pi−Lr_i-l_{i+1}=P_i-Lri​−li+1​=Pi​−L
l1=Ll_1=Ll1​=L
lN+1=0l_{N+1}=0lN+1​=0
i​
−
i=1∑N​si​,(N+
1)L=
W+
i=1∑N​ci​.
+
1)⌉
K=(N+1)L−WK=(N+1)L-WK=(N+1)L−W
i​
+
si​≥
1
li+si−(Pi−L)≥1l_i+s_i-(P_i-L)\geq1li​+si​−(Pi​−L)≥1
ci=1c_i=1ci​=1
KKK
ci=0c_i=0ci​=0
ri=li+si−cir_i=l_i+s_i-c_iri​=li​+si​−ci​
li+1=ri−(Pi−L)l_{i+1}=r_i-(P_i-L)li+1​=ri​−(Pi​−L)
∑(li+ri)\sum(l_i+r_i)∑(li​+ri​)
Hi=∑j≤isjH_i=\sum_{j\leq i}s_jHi​=∑j≤i​sj​
Qi=∑j≤iPjQ_i=\sum_{j\leq i}P_jQi​=∑j≤i​Pj​
−
Qi−1​+
Hi​+
min(0,L−
Pi​)
i​
,
ri​
0
li≤iC+i−1l_i\leq iC+i-1
li​≤iC+i−1
CN(N+1)+N2≤4 000 020 040 000 000 000CN(N+1)+N^2\leq4\,000\,020\,040\,000\,000\,000CN(N+1)+N2≤4000020040000000000