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

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

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

Difference Pyramid

문제로 돌아가기

해설

연산을 한 번 수행해도 모든 원소는 계속 0,1,20,1,20,1,2 중 하나이다. 따라서 마지막 값도 0,1,20,1,20,1,2 중 하나이다.

먼저 마지막 값의 홀짝을 구하자. 정수 x,yx,yx,y에 대해

∣x−y∣≡x+y(mod2)|x-y|\equiv x+y\pmod 2∣x−y∣≡x+y(mod2)

이다. 따라서 모든 값을 222로 나눈 나머지만 보면 한 단계의 연산은 인접한 두 값을 더하는 것과 같다.

이 연산을 N−1N-1N−1번 반복하면 파스칼의 삼각형과 같은 계수가 나타난다. 마지막 값의 홀짝 PPP는

P≡∑i=1N(N−1i−1)Ai(mod2)P\equiv\sum_{i=1}^{N}\binom{N-1}{i-1}A_i\pmod 2P≡i=1∑N​(

이다.

뤼카 정리에 의해

(nk)\binom{n}{k}(kn​)

가 홀수일 필요충분조건은 kkk의 모든 111비트가 nnn에도 존재하는 것이다. 즉,

(k&n)=k(k\mathbin{\&}n)=k(k&n)=k

이면 된다.

따라서 n=N−1n=N-1n=N−1이라 할 때, (i−1)&n=i−1(i-1)\mathbin{\&}n=i-1(i−1)&n=i−1을 만족하는 위치의 를 XOR하면 를 에 계산할 수 있다.

P=1P=1P=1이면 마지막 값은 홀수이고 가능한 값은 0,1,20,1,20,1,2뿐이므로 정답은 반드시 111이다.

이제 P=0P=0P=0인 경우를 생각하자. 마지막 값은 000 또는 222이다.

마지막 값이 222라면 처음 배열에는 111이 존재할 수 없다. 이를 배열 길이에 대한 귀납법으로 보일 수 있다. 길이가 111이면 자명하다. 길이가 222 이상이고 마지막 값이 222라 하자. 첫 연산 뒤의 배열에도 같은 문제를 적용할 수 있으므로 귀납 가정에 의해 첫 연산 뒤의 모든 값은 짝수이다. 따라서 원래 배열의 모든 인접한 두 값은 같은 홀짝을 가지며, 원래 배열의 모든 값의 홀짝이 같다. 모두 홀수라면 모든 값이 111이고 첫 연산 뒤부터 전부 0이 되어 마지막 값도 이다. 모순이다. 따라서 원래 배열의 모든 값은 또는 이다.

그러므로 P=0P=0P=0인데 Ai=1A_i=1Ai​=1인 위치가 하나라도 있다면 정답은 000이다.

마지막으로 모든 AiA_iAi​가 000 또는 222인 경우를 보자. Ci=Ai/2C_i=A_i/2Ci라 두면 는 또는 이다. 또한

∣2x−2y∣=2∣x−y∣|2x-2y|=2|x-y|∣2x−2y∣=2∣x−y∣

이므로 전체 Difference Pyramid의 모든 값이 정확히 222배로 대응한다. 따라서 원래 배열의 마지막 값은 CCC의 마지막 값의 222배이다.

CCC는 이진 배열이므로 마지막 값은 000 또는 111이고, 앞에서와 같은 이항계수 홀짝 계산으로 정확히 구할 수 있다. 즉,

Q≡∑i=1N(N−1i−1)Ai2(mod2)Q\equiv\sum_{i=1}^{N}\binom{N-1}{i-1}\frac{A_i}{2}\pmod2Q≡i=1∑N​(

를 구해 정답으로 2Q2Q2Q를 출력하면 된다.

전체 배열을 한 번 순회하면서 PPP, QQQ, 111의 존재 여부를 동시에 계산할 수 있으므로 시간 복잡도는 O(N)O(N)O(N)이고 메모리 복잡도는 O(1)O(1)O(1)이다.

Solution written by GPT5.6

i−1
N−1
​
)
Ai​
(mod2)
Ai mod 2A_i\bmod2
Ai​mod2
PPP
O(N)O(N)O(N)
0
0
000
000
222
​
=
Ai​/2
CiC_iCi​
000
111
i−1
N−1
​
)
2Ai​​
(mod2)