211212026-01-12 12:09:14vargaviviAdószedőcpp17Accepted 30/30186ms13888 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
	int n, m, c;
    cin >> n >> m >> c;
    vector<vector<int>> g(n + 1);
    for (int i = 0; i < m; i ++) {
        int u, v; cin >> u >> v;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    queue<int> q;
    q.push(c);
    vector<int> dist(n + 1, 100000000);
    vector<bool> done(n + 1, false);
    dist[c] = 0;
    set<pair<int, int>> ans;
    while(!q.empty()) {
        int u = q.front();
        q.pop();
        for (int v : g[u]) {
            if (dist[v] >= dist[u] + 1) {
                dist[v] = dist[u] + 1;
                ans.insert({u, v});
            }
            if (!done[v]) {
                q.push(v);
                done[v] = true;
            }
        }
    }
    cout << ans.size() << "\n";
    for (auto[x, y] : ans) cout << x << " " << y << "\n";
}
SubtaskSumTestVerdictTimeMemory
base30/30
1Accepted0/01ms316 KiB
2Accepted0/0158ms11572 KiB
3Accepted1/11ms532 KiB
4Accepted1/11ms508 KiB
5Accepted1/11ms316 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms316 KiB
8Accepted1/11ms508 KiB
9Accepted2/22ms316 KiB
10Accepted2/22ms564 KiB
11Accepted2/22ms564 KiB
12Accepted2/212ms1332 KiB
13Accepted2/226ms2700 KiB
14Accepted2/2116ms9780 KiB
15Accepted1/1163ms13052 KiB
16Accepted1/1141ms11004 KiB
17Accepted2/2186ms13876 KiB
18Accepted2/2150ms12852 KiB
19Accepted2/2165ms13476 KiB
20Accepted2/2174ms13620 KiB
21Accepted2/2171ms13888 KiB