35652023-03-01 07:31:161478Adószedőcpp17Elfogadva 30/30192ms17636 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    //ifstream cin("in.txt");
    int n;
    cin >> n;
    int m;
    cin >> m;
    int k;
    cin >> k;
    vector<vector<int>> liszt(n + 1);
    for(int i = 1; i <= m; i++){
        int ferenc1;
        cin >> ferenc1;
        int ferenc2;
        cin >> ferenc2;

        liszt[ferenc1].push_back(ferenc2);
        liszt[ferenc2].push_back(ferenc1);
    }

    /*
    for(int i = 1; i <= n; i++){
        for(int j = 0; j < liszt[i].size(); j++){
            cout << liszt[i][j] << " ";
        }
        cout << '\n';
    }
    */

    vector<pair<int,int>> ans;

    vector<int> d(n + 1);
    queue<int> q;
    q.push(k);

    while(!q.empty()){
        int a;
        a = q.front();
        q.pop();
        for(int i = 0; i < liszt[a].size(); i++){
            if(d[liszt[a][i]] == 0 && liszt[a][i]!=k){
                ans.push_back({a,liszt[a][i]});
                d[liszt[a][i]] = d[a] + 1;
                q.push(liszt[a][i]);
            }
            else if(d[liszt[a][i]] >= d[a]+1){
                ans.push_back({a,liszt[a][i]});
            }

        }
    }

    cout << ans.size() << '\n';
    for(int i = 0; i < ans.size(); i++){
        cout << ans[i].first << " " << ans[i].second << '\n';
    }





    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base30/30
1Elfogadva0/03ms1808 KiB
2Elfogadva0/0158ms11776 KiB
3Elfogadva1/13ms2096 KiB
4Elfogadva1/13ms2228 KiB
5Elfogadva1/13ms2444 KiB
6Elfogadva1/13ms2676 KiB
7Elfogadva1/13ms2876 KiB
8Elfogadva1/13ms3104 KiB
9Elfogadva2/23ms3240 KiB
10Elfogadva2/24ms3288 KiB
11Elfogadva2/24ms3288 KiB
12Elfogadva2/214ms4436 KiB
13Elfogadva2/232ms5496 KiB
14Elfogadva2/2136ms11376 KiB
15Elfogadva1/1173ms16532 KiB
16Elfogadva1/1146ms12760 KiB
17Elfogadva2/2192ms16820 KiB
18Elfogadva2/2178ms16212 KiB
19Elfogadva2/2190ms16848 KiB
20Elfogadva2/2186ms17476 KiB
21Elfogadva2/2192ms17636 KiB