QOJ.ac

QOJ

Time Limit: 3.0 s Memory Limit: 512 MB Total points: 100 Hackable ✓

#18135. 멋진 그래프

Statistics

$n$개의 정점과 $m$개의 간선을 가진 무방향 그래프가 주어진다. 당신은 다음 연산을 최대 $2 \cdot \max(n, m)$번 수행할 수 있다:

  • 서로 다른 세 정점 $a, b, c$를 선택한 뒤, 간선 $(a, b), (b, c), (c, a)$ 각각에 대해 다음을 수행한다:
    • 간선이 존재하지 않으면 추가한다. 반대로, 간선이 존재하면 제거한다.

그래프가 다음 중 하나를 만족하면 cool하다고 한다:

  • 그래프에 간선이 없다.
  • 그래프가 트리이다.

위의 연산을 수행하여 그래프를 cool하게 만들어야 한다. 최대 $2 \cdot \max(n, m)$번의 연산을 사용할 수 있음에 유의하라. 적어도 하나의 해가 항상 존재함이 알려져 있다.

입력

각 테스트 케이스는 여러 개의 테스트 케이스를 포함한다. 입력의 첫 번째 줄에는 테스트 케이스의 수 $t$ ($1 \le t \le 10^4$)가 주어진다. 각 테스트 케이스에 대한 설명이 이어진다.

각 테스트 케이스의 첫 번째 줄에는 두 정수 $n$과 $m$ ($3 \le n \le 10^5$, $0 \le m \le \min\left(\frac{n(n-1)}{2}, 2 \cdot 10^5\right)$)이 주어지며, 이는 각각 정점의 수와 간선의 수를 나타낸다.

그다음 $m$개의 줄이 이어지며, $i$번째 줄에는 $i$번째 간선이 연결하는 두 노드 $u_i$와 $v_i$ ($1 \le u_i, v_i \le n$)가 주어진다.

모든 테스트 케이스에 대해 $n$의 합은 $10^5$를 넘지 않으며, $m$의 합은 $2 \cdot 10^5$를 넘지 않음이 보장된다. 주어진 그래프에는 자기 루프나 다중 간선이 없음이 보장된다.

출력

각 테스트 케이스마다, 첫 번째 줄에 연산의 횟수 $k$ ($0 \le k \le 2 \cdot \max(n, m)$)를 출력한다. 그다음 $k$개의 줄에 걸쳐, $i$번째 줄에 $i$번째 연산에서 선택한 세 정점 $a, b, c$ ($1 \le a, b, c \le n$)를 출력한다. 여러 해가 존재할 경우, 아무거나 출력해도 된다.

예제

입력 1

5
3 0
3 1
1 2
3 2
1 2
2 3
3 3
1 2
2 3
3 1
6 6
1 2
1 6
4 5
3 4
4 6
3 6

출력 1

0
1
1 2 3
0
1
1 2 3
3
1 3 6
2 4 5
3 4 6

참고

첫 번째 테스트 케이스에서, 그래프에는 간선이 없으므로 이미 cool하다. 두 번째 테스트 케이스에서, 유일한 연산을 수행한 후 그래프는 트리가 되므로 cool하다. 세 번째 테스트 케이스에서, 그래프는 이미 트리이므로 cool하다. 네 번째 테스트 케이스에서, 유일한 연산을 수행한 후 그래프에는 간선이 없으므로 cool하다. 다섯 번째 테스트 케이스의 경우:

연산 연산 전 그래프 연산 후 그래프
1
2
3

첫 번째 연산 후 그래프가 이미 cool해졌으며, 두 번의 추가 연산이 있음에 유의하라. 두 번의 추가 연산 후에도 그래프는 여전히 cool하므로, 이는 유효한 답이다.

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.