해설
가능한 모든 정수 쌍을 그래프로 나타내자.
왼쪽에는 가능한 합 마다 정점 를 만든다. 오른쪽에는 가능한 XOR 값 마다 정점 를 만든다. 가능한 쌍 마다 와 를 잇는 간선을 하나 만든다.
어떤 날이 시작될 때 남아 있는 간선들은 이전 날까지의 모든 선언과 모순되지 않는 쌍들이다. 다다스가 관찰한 합에 대응하는 정점의 차수가 이면 다다스는 두 수를 유일하게 알 수 있다. 모그도 같은 방식으로 XOR 정점의 차수가 일 때 두 수를 알 수 있다.
두 사람은 동시에 말하므로, 한 날에는 시작 시점의 차수가 인 정점에 닿은 모든 간선을 동시에 제거해야 한다. 따라서 정답은 실제 간선이 제거되는 라운드 번호이다. 끝까지 제거되지 않고 그래프의 -core에 남으면 정답은 이다.
인 경우를 분석한다. 를 이하의 가장 큰 의 거듭제곱이라 하자.
합 정점의 초기 차수가 인 경우는 다음 네 개뿐이다.
- 합이 인 .
- 합이 인 .
- 합이 인 .
- 합이 인 .
초기 XOR 정점의 차수가 인 경우는 다음과 같이 분류된다.
- 이면 가 모든 에 대해 유일하다.
- 이면 와 만 유일하다.
- 그 외에는 없다.
이를 보이기 위해 XOR 값 를 생각하자. 이면 최상위 비트가 바뀌지 않는다. 인 범위에서는 같은 XOR 값을 만드는 쌍을 낮은 구간에서 적어도 두 개 만들 수 있다.
이면 로 쓸 수 있다. 높은 쪽 수를 라 하면 낮은 쪽 수는 이다. 여기서 이다. 일 때만 낮은 쪽 수가 이 되어 사용할 수 없다.
- 이면 가능한 가 하나뿐이므로 가 유일하다.
- 이면 에서만 하나가 남고, 각각 과 이다.
- 이면 하나를 제외해도 적어도 두 개가 남는다.
이제 매 라운드에서 새로 차수가 이 되는 정점을 조사하면 다음 표를 얻는다.
조건 | 1일차 | 2일차 | 3일차 | 4일차 |
|---|---|---|---|---|
없음 | 없음 | |||
그 외 | 없음 | 없음 | 없음 |
일 때 첫 라운드에서 가 모두 제거된다. 이 때문에 합 와 에서 각각 과 만 남아 둘째 날 제거된다.
일 때 첫 라운드 뒤 XOR 에서 만 남는다. 이 간선이 제거되면 합 에서 만 남는다. 다시 이 간선이 제거되면 XOR 에서 만 남는다.
표에 적힌 간선을 제거한 뒤에는 양의 차수를 가진 모든 합 정점과 XOR 정점의 차수가 적어도 이다. 이는 경계에서 거리가 일정한 작은 경우만 직접 확인하고, 나머지 경우에는 합을 유지하는 인접한 쌍 또는 같은 XOR 값을 만드는 다른 를 선택하여 확인할 수 있다. 이라는 조건 때문에 필요한 수들이 범위 안에 남는다. 따라서 더 이상의 제거는 일어나지 않는다.
에서는 위 증명에 사용한 여유가 부족하여 추가 연쇄가 생길 수 있다. 가능한 간선이 최대 개뿐이므로 그래프를 직접 만들고 라운드별로 시뮬레이션한다.
각 테스트 케이스에서 를 구하는 데 가 걸린다. 작은 경우의 시뮬레이션 크기는 상수이므로 전체 시간 복잡도는 이고, 추가 공간 복잡도는 이다.
Solution written by GPT5.6