230872026-01-16 11:49:51MagyarKendeSZLGAdószedőcpp17Accepted 30/30118ms12492 KiB
#include <bits/stdc++.h>
using namespace std;
#define int int64_t

int32_t main() {
    cin.tie(0), ios::sync_with_stdio(0);
    int n, m, start;
    cin >> n >> m >> start;
    vector<vector<int>> g(n + 1);
    while (m--) {
        int u, v;
        cin >> u >> v;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    vector<array<int, 2>> result;
    queue<int> q({start});
    vector<int> dist(n + 1, 1e9);
    vector<bool> vis(n + 1);
    vis[start] = 1;
    dist[start] = 0;
    while (!q.empty()) {
        int u = q.front();
        q.pop();
        for (int v : g[u]) {
            if (dist[u] + 1 < dist[v]) {
                result.push_back({u, v});
                dist[v] = dist[u] + 1;
                q.push(v);
            } else if (dist[u] + 1 == dist[v]) {
                result.push_back({u, v});
            }
        }
    }
    cout << result.size() << "\n";
    for (auto [u, v] : result)
        cout << u << " " << v << "\n";
}
SubtaskSumTestVerdictTimeMemory
base30/30
1Accepted0/01ms508 KiB
2Accepted0/0109ms10140 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms316 KiB
5Accepted1/11ms316 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms316 KiB
8Accepted1/11ms316 KiB
9Accepted2/21ms316 KiB
10Accepted2/22ms376 KiB
11Accepted2/22ms564 KiB
12Accepted2/28ms1336 KiB
13Accepted2/217ms2476 KiB
14Accepted2/276ms8360 KiB
15Accepted1/1101ms12492 KiB
16Accepted1/189ms9388 KiB
17Accepted2/2118ms12112 KiB
18Accepted2/2105ms10924 KiB
19Accepted2/2108ms11436 KiB
20Accepted2/2108ms11692 KiB
21Accepted2/2104ms12208 KiB