35642023-03-01 07:31:061478Adószedőcpp17Hibás válasz 0/303ms4136 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
base0/30
1Hibás válasz0/03ms1808 KiB
2Hibás válasz0/03ms2056 KiB
3Hibás válasz0/13ms2212 KiB
4Hibás válasz0/13ms2420 KiB
5Hibás válasz0/13ms2640 KiB
6Hibás válasz0/13ms2852 KiB
7Hibás válasz0/13ms3056 KiB
8Hibás válasz0/13ms3040 KiB
9Hibás válasz0/23ms3144 KiB
10Hibás válasz0/23ms3392 KiB
11Hibás válasz0/23ms3524 KiB
12Hibás válasz0/23ms3604 KiB
13Hibás válasz0/23ms3736 KiB
14Hibás válasz0/23ms3820 KiB
15Hibás válasz0/13ms3904 KiB
16Hibás válasz0/13ms3904 KiB
17Hibás válasz0/23ms4036 KiB
18Hibás válasz0/22ms4036 KiB
19Hibás válasz0/23ms4104 KiB
20Hibás válasz0/23ms4136 KiB
21Hibás válasz0/23ms4072 KiB