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

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

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

원숭이 안 떨어뜨리기

문제로 돌아가기

해설

원숭이 수의 합을 SSS라 하자. 각 턴에 층 하나를 제거하므로 총 HHH턴이다. 마지막 턴을 맡지 않는 사람을 PPP라 하자.

PPP의 턴에는 남은 층이 항상 짝수 개이므로 적어도 222개이다. 따라서 PPP는 매번 현재 맨 아래층이 아닌 층을 제거할 수 있다. 이때 원숭이는 다른 층으로 이동하므로 PPP는 원숭이를 가져가지 않는다. 이 전략으로 PPP는 상대의 행동과 무관하게 000마리를 보장하며, 이보다 적게 가져갈 수는 없으므로 최적이다.

게임이 끝나면 모든 원숭이는 두 사람 중 한 명에게 있으므로, 마지막 턴을 맡는 사람은 SSS마리를 가져가게 된다. HHH가 홀수이면 Ishigami가 마지막 턴을 맡아 결과는 (S,0)(S,0)(S,0)이고, 짝수이면 결과는 (0,S)(0,S)(0,S)이다. S=0S=0이어도 같은 식이 성립한다.

입력을 읽으며 합을 구하면 시간복잡도는 O(H)O(H)O(H), 추가 공간복잡도는 O(1)O(1)O(1)이다. S≤1015S \le 10^{15}S≤1015이므로 합과 출력은 부호 있는 6464비트 정수로 계산한다.

Solution written by GPT

S
=
0
64