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

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

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

합과 XOR의 대화

문제로 돌아가기

해설

가능한 모든 정수 쌍을 그래프로 나타내자.

왼쪽에는 가능한 합 sss마다 정점 SsS_sSs​를 만든다. 오른쪽에는 가능한 XOR 값 yyy마다 정점 YyY_yYy​를 만든다. 가능한 쌍 (a,b)(a,b)(a,b)마다 Sa+bS_{a+b}Sa+b​와 YaxorbY_{a\mathbin{\mathrm{xor}}b}Yaxorb​를 잇는 간선을 하나 만든다.

어떤 날이 시작될 때 남아 있는 간선들은 이전 날까지의 모든 선언과 모순되지 않는 쌍들이다. 다다스가 관찰한 합에 대응하는 정점의 차수가 111이면 다다스는 두 수를 유일하게 알 수 있다. 모그도 같은 방식으로 XOR 정점의 차수가 111일 때 두 수를 알 수 있다.

두 사람은 동시에 말하므로, 한 날에는 시작 시점의 차수가 111인 정점에 닿은 모든 간선을 동시에 제거해야 한다. 따라서 정답은 실제 간선이 제거되는 라운드 번호이다. 끝까지 제거되지 않고 그래프의 222-core에 남으면 정답은 −1-1−1이다.

X≥10X\ge 10X≥10인 경우를 분석한다. PPP를 XXX 이하의 가장 큰 222의 거듭제곱이라 하자.

합 정점의 초기 차수가 111인 경우는 다음 네 개뿐이다.

  • 합이 333인 (1,2)(1,2)(1,2).
  • 합이 444인 (1,3)(1,3)(1,3).
  • 합이 2X−22X-22X인 .

초기 XOR 정점의 차수가 111인 경우는 다음과 같이 분류된다.

  • X=PX=PX=P이면 (i,P)(i,P)(i,P)가 모든 1≤i<P1\le i<P1≤i<P에 대해 유일하다.
  • X=P+이면 와 만 유일하다.

이를 보이기 위해 XOR 값 yyy를 생각하자. y<Py<Py<P이면 최상위 비트가 바뀌지 않는다. P≥8P\ge 8P≥8인 범위에서는 같은 XOR 값을 만드는 쌍을 낮은 구간에서 적어도 두 개 만들 수 있다.

y≥Py\ge Py≥P이면 y=P+zy=P+zy=P+z로 쓸 수 있다. 높은 쪽 수를 P+tP+tP+t라 하면 낮은 쪽 수는 t이다. 여기서 이다. 일 때만 낮은 쪽 수가 이 되어 사용할 수 없다.

  • X−P=0X-P=0X−P=0이면 가능한 ttt가 하나뿐이므로 (z,P)(z,P)(z,P)가 유일하다.
  • X−P=1X-P=1X이면 에서만 하나가 남고, 각각 과 이다.

이제 매 라운드에서 새로 차수가 111이 되는 정점을 조사하면 다음 표를 얻는다.

조건

1일차

2일차

3일차

4일차

X=PX=PX=P

(1,2),(1,3),(i,P)(1,2),(1,3),(i,P)

X=PX=PX=P일 때 첫 라운드에서 (i,P)(i,P)(i,P)가 모두 제거된다. 이 때문에 합 2P−42P-42P−4와 2P−32P-32P에서 각각 과 만 남아 둘째 날 제거된다.

−
2
(X−2,X)(X-2,X)(X−2,X)
  • 합이 2X−12X-12X−1인 (X−1,X)(X-1,X)(X−1,X).
  • 1X=P+1
    X=P+1
    (1,P)(1,P)(1,P)
    (1,P+1)(1,P+1)(1,P+1)
  • 그 외에는 없다.
  • xorzt\mathbin{\mathrm{xor}}z
    txorz
    0≤t≤X−P0\le t\le X-P0≤t≤X−P
    t=zt=zt=z
    000
    −
    P=
    1
    z=0,1z=0,1z=0,1
    (1,P+1)(1,P+1)(1,P+1)
    (1,P)(1,P)(1,P)
  • X−P≥2X-P\ge 2X−P≥2이면 하나를 제외해도 적어도 두 개가 남는다.
  • (
    1
    ,
    2
    )
    ,
    (
    1
    ,
    3
    )
    ,
    (
    i
    ,
    P
    )

    (P−3,P−1),(P−2,P−1)(P-3,P-1),(P-2,P-1)(P−3,P−1),(P−2,P−1)

    없음

    없음

    X=P+1X=P+1X=P+1

    (1,2),(1,3),(1,P),(1,P+1),(P−1,P+1),(P,P+1)(1,2),(1,3),(1,P),(1,P+1),(P-1,P+1),(P,P+1)(1,2),(1,3),(1,P),(1,P+1),(P−1,P+1),(P,P+1)

    (P−2,P)(P-2,P)(P−2,P)

    (P−3,P+1)(P-3,P+1)(P−3,P+1)

    (P−4,P)(P-4,P)(P−4,P)

    그 외

    (1,2),(1,3),(X−2,X),(X−1,X)(1,2),(1,3),(X-2,X),(X-1,X)(1,2),(1,3),(X−2,X),(X−1,X)

    없음

    없음

    없음

    −
    3
    (P−3,P−1)(P-3,P-1)(P−3,P−1)
    (P−2,P−1)(P-2,P-1)(P−2,P−1)

    X=P+1X=P+1X=P+1일 때 첫 라운드 뒤 XOR 2P−22P-22P−2에서 (P−2,P)(P-2,P)(P−2,P)만 남는다. 이 간선이 제거되면 합 2P−22P-22P−2에서 (P−3,P+1)(P-3,P+1)(P−3,P+1)만 남는다. 다시 이 간선이 제거되면 XOR 2P−42P-42P−4에서 (P−4,P)(P-4,P)(P−4,P)만 남는다.

    표에 적힌 간선을 제거한 뒤에는 양의 차수를 가진 모든 합 정점과 XOR 정점의 차수가 적어도 222이다. 이는 경계에서 거리가 일정한 작은 경우만 직접 확인하고, 나머지 경우에는 합을 유지하는 인접한 쌍 또는 같은 XOR 값을 만드는 다른 ttt를 선택하여 확인할 수 있다. X≥10X\ge 10X≥10이라는 조건 때문에 필요한 수들이 범위 안에 남는다. 따라서 더 이상의 제거는 일어나지 않는다.

    X≤9X\le 9X≤9에서는 위 증명에 사용한 여유가 부족하여 추가 연쇄가 생길 수 있다. 가능한 간선이 최대 (92)=36\binom{9}{2}=36(29​)=36개뿐이므로 그래프를 직접 만들고 라운드별로 시뮬레이션한다.

    각 테스트 케이스에서 PPP를 구하는 데 O(log⁡X)O(\log X)O(logX)가 걸린다. 작은 경우의 시뮬레이션 크기는 상수이므로 전체 시간 복잡도는 O(Tlog⁡X)O(T\log X)O(TlogX)이고, 추가 공간 복잡도는 O(1)O(1)O(1)이다.

    Solution written by GPT5.6