Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- /**
- Use this as input: (copy-paste in terminal)
- 3
- 4 2
- 1 2
- 2 3
- 5 3
- 1 2
- 2 3
- 1 3
- 6 3
- 1 2
- 3 4
- 5 6
- */
- vector<vector<int>> a;
- vector<bool> visited;
- int cnt = 0;
- void BFS(int u) {
- queue<int> q;
- visited[u] = true;
- q.push(u);
- while (!q.empty()) {
- u = q.front();
- q.pop();
- for (auto it = a[u].begin(); it != a[u].end(); it++) {
- if (!visited[*it]) {
- visited[*it] = true;
- q.push(*it);
- cout << " -> " << *it + 1;
- }
- }
- }
- }
- int main() {
- int tt;
- cin >> tt;
- while (tt--) {
- int n, m;
- cin >> n >> m;
- a = vector<vector<int>>(n);
- for (int i = 0; i < m; i++) {
- int u, v;
- cin >> u >> v;
- --u, --v;
- a[u].push_back(v);
- a[v].push_back(u);
- }
- visited = vector<bool>(n, false);
- for (int u = 0; u < n; u++) {
- if (!visited[u]) {
- cout << u + 1;
- BFS(u);
- cout << '\n';
- }
- }
- cout << "----\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement