76842024-01-10 13:06:17UnluckYAdószedőcpp17Elfogadva 30/30483ms21672 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{

    int n, m, f; cin >> n >> m >> f;
    vector<vector<int>> v(n+1);
    vector<pair<int, int>> elek;
    for (int i = 0; i < m; i++){
        int a, b; cin >> a >> b;
        v[a].push_back(b);
        v[b].push_back(a);
        elek.push_back({a, b});
    }

    vector<int> d(n+1, 1e9);
    queue<int> q;
    q.push(f);
    d[f] = 0;

    while (!q.empty()){
        int x = q.front();
        q.pop();
        for (int i : v[x]){
            if (d[i] > d[x] + 1){
                d[i] = d[x]+1;
                q.push(i);
            }
        }

    }

    vector<pair<int, int>> me;

    for (auto i : elek){
        if (d[i.first] + 1 == d[i.second] || d[i.second] + 1 == d[i.first]) me.push_back(i);
    }

    cout << me.size() << endl;

    for (auto i : me) cout << i.first << " " << i.second << endl;



    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base30/30
1Elfogadva0/03ms1816 KiB
2Elfogadva0/0367ms16268 KiB
3Elfogadva1/13ms2404 KiB
4Elfogadva1/13ms2640 KiB
5Elfogadva1/13ms2824 KiB
6Elfogadva1/13ms3000 KiB
7Elfogadva1/13ms3080 KiB
8Elfogadva1/13ms3204 KiB
9Elfogadva2/24ms3608 KiB
10Elfogadva2/27ms3600 KiB
11Elfogadva2/26ms3600 KiB
12Elfogadva2/226ms5012 KiB
13Elfogadva2/259ms6644 KiB
14Elfogadva2/2331ms15592 KiB
15Elfogadva1/1448ms21500 KiB
16Elfogadva1/1354ms17064 KiB
17Elfogadva2/2446ms21624 KiB
18Elfogadva2/2483ms20784 KiB
19Elfogadva2/2456ms21528 KiB
20Elfogadva2/2358ms21672 KiB
21Elfogadva2/2379ms21644 KiB