77672024-01-11 09:17:30ZsBalazsAdószedőcpp17Elfogadva 30/30490ms17212 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {
    int n, m, fo;
    cin >> n >> m >> fo;
    
    vector<vector<int>> graph(n);
    
    for (int i = 0; m > i; i++) {
        int a, b;
        cin >> a >> b;
        
        a--;
        b--;
        
        graph[a].push_back(b);
        graph[b].push_back(a);
    }
    
    vector<int> voltam(n, -1);
    // honnan, hova
    queue<pair<int, pair<int, int>>> sor;
    
    vector<pair<int, int>> felujit;
    
    sor.push({0, {fo-1, 0}});
    
    while (!sor.empty()) {
        auto current = sor.front();
        sor.pop();
        
        int honnan = current.first;
        int hova = current.second.first;
        int counter = current.second.second;
        
        if (voltam[hova] < counter && voltam[hova] != -1) continue;
        
        felujit.push_back({honnan, hova});
        
        if (voltam[hova] != counter) {
            for (int szom : graph[hova]) {
                sor.push({hova, {szom, counter+1}});
            }
        }
        
        voltam[hova] = counter;
    }
    
    cout << felujit.size()-1 << endl;
    
    for (int i = 1; felujit.size() > i; i++) {
        cout << felujit[i].first+1 << " " << felujit[i].second+1 << endl;
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base30/30
1Elfogadva0/03ms1808 KiB
2Elfogadva0/0358ms11736 KiB
3Elfogadva1/13ms2100 KiB
4Elfogadva1/13ms2100 KiB
5Elfogadva1/13ms2332 KiB
6Elfogadva1/13ms2540 KiB
7Elfogadva1/13ms2748 KiB
8Elfogadva1/13ms2872 KiB
9Elfogadva2/24ms3132 KiB
10Elfogadva2/27ms3376 KiB
11Elfogadva2/26ms3320 KiB
12Elfogadva2/226ms4464 KiB
13Elfogadva2/261ms5824 KiB
14Elfogadva2/2365ms11772 KiB
15Elfogadva1/1344ms16876 KiB
16Elfogadva1/1296ms13020 KiB
17Elfogadva2/2465ms16844 KiB
18Elfogadva2/2419ms16032 KiB
19Elfogadva2/2490ms16596 KiB
20Elfogadva2/2460ms17212 KiB
21Elfogadva2/2460ms17064 KiB