QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 1024 MB Total points: 100

#17417. Alice와 Bob

Statistics

Alice와 Bob은 $1$부터 $2N$까지 번호가 매겨진 $2N$개의 정점으로 이루어진 트리 $T$를 가지고 있다.

Bob은 정수 $K$를 가지고 있으며, $1$부터 $2N$까지의 각 정수가 정확히 하나의 쌍에만 나타나고 거리의 합이 $\sum_{i=1}^N \text{dist}(X_i, Y_i) = K$가 되는 $N$개의 쌍 $(X_1, Y_1), (X_2, Y_2), \dots, (X_N, Y_N)$을 찾고자 한다. 여기서 $\text{dist}(X_i, Y_i)$는 트리에서 정점 $X_i$와 $Y_i$ 사이의 거리, 즉 $X_i$와 $Y_i$를 잇는 (유일한) 경로 위의 간선 개수를 의미한다.

Alice는 Bob이 성공하는 것을 원하지 않는다. 그녀는 다음 연산을 수행할 수 있다.

  • $T$에서 간선 $(U, V)$를 하나 제거한다.
  • $T$가 여전히 트리로 유지되도록 새로운 간선 $(A, B)$를 추가한다.

삭제할 간선과 추가할 간선으로 동일한 간선을 선택하는 것도 허용되며, 이 경우 원래 트리가 그대로 유지된다는 점에 유의하라.

Alice를 도와 삭제해야 할 간선 $(U, V)$와 추가해야 할 간선 $(A, B)$를 찾아주자. 가능한 해가 여러 개라면 그중 아무것이나 찾아도 된다.

이 문제의 제약 조건 하에서는 간선 하나를 삭제하고 간선 하나를 추가하여, $1$부터 $2N$까지의 각 정수가 정확히 하나의 쌍에 나타나면서 거리의 합이 $K$가 되는 $N$개의 쌍 $(X_1, Y_1), (X_2, Y_2), \dots, (X_N, Y_N)$이 존재하지 않도록 만드는 것이 항상 가능함을 증명할 수 있다.

입력

입력은 다음 형식으로 주어진다.

$$T$$ $$N\ K$$ $$U_1\ V_1$$ $$U_2\ V_2$$ $$\vdots$$ $$U_{{2N-1}}\ V_{{2N-1}}$$ $$\vdots$$

  • 모든 입력값은 정수이다.
  • $1 \le T \le 10^4$
  • $2 \le N \le 2 \times 10^5$
  • $1 \le K \le 10^{12}$
  • $1 \le U_i, V_i \le 2N$
  • 주어지는 간선들은 트리를 이룸이 보장된다.
  • 모든 테스트 케이스에 걸쳐 $N$의 합은 $2 \times 10^5$을 초과하지 않음이 보장된다.

출력

각 테스트 케이스마다 두 줄을 출력한다.

첫 번째 줄에는 삭제할 간선 $(U, V)$를 의미하는 두 정수 $U$와 $V$를 출력한다.

두 번째 줄에는 추가할 간선 $(A, B)$를 의미하는 두 정수 $A$와 $B$를 출력한다.

해가 여러 개라면 그중 아무것이나 출력한다.

예제

입력 1

2
2 20
1 2
2 3
3 4
2 4
1 2
2 3
3 4

출력 1

1 2
1 2
1 2
1 3

노트

테스트 케이스 1: 초기 트리에서 이미 Bob이 점수 $K = 20$을 얻을 방법이 없으므로, Alice는 기존의 아무 간선이나 삭제했다가 다시 삽입하면 된다.

테스트 케이스 2: 초기 트리에서는 예를 들어 쌍 $(1, 4)$와 $(2, 3)$을 선택하여 Bob이 점수 $K = 4$를 얻을 수 있다. Alice는 간선 $(1, 2)$를 삭제하고 $(1, 3)$을 삽입한다. 이 새로운 트리에서 Bob은 점수 $4$를 얻을 수 없다.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.