235922026-01-25 22:43:02abcdAdószedőcpp17Accepted 30/30314ms16948 KiB
#include <bits/stdc++.h>
using namespace std;
using pii=pair<int, int>;

int main() {
    int n,m,f;cin>>n>>m>>f;
    vector<vector<pii>> adj(n+1);
    for(int i=0;i<m;i++) {
        int a,b;cin>>a>>b;
        adj[a].push_back({b,i});
        adj[b].push_back({a,i});
    }
    queue<pii> q;
    q.push({f,0});
    set<pii> ans;
    vector<int> d(n+1,-1),vis(m);
    d[f]=0;
    while(!q.empty()) {
        auto [v,dis]=q.front();q.pop();
        for(auto [to,i]:adj[v]) {
            if(vis[i])continue;
            if(d[to]==-1||d[to]==dis+1) {
                d[to]=dis+1;
                q.push({to,dis+1});
                if(v<to)ans.insert({v,to});
                else ans.insert({to,v});
                vis[i]=true;
            }
        }
    }
    cout<<ans.size()<<'\n';
    for(auto [a,b]:ans)cout<<a<<' '<<b<<'\n';
}
SubtaskSumTestVerdictTimeMemory
base30/30
1Accepted0/01ms316 KiB
2Accepted0/0248ms14132 KiB
3Accepted1/11ms512 KiB
4Accepted1/12ms316 KiB
5Accepted1/11ms348 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms572 KiB
8Accepted1/12ms500 KiB
9Accepted2/23ms316 KiB
10Accepted2/23ms564 KiB
11Accepted2/23ms564 KiB
12Accepted2/217ms1396 KiB
13Accepted2/243ms3140 KiB
14Accepted2/2201ms11828 KiB
15Accepted1/1272ms15888 KiB
16Accepted1/1225ms13360 KiB
17Accepted2/2314ms16948 KiB
18Accepted2/2284ms15668 KiB
19Accepted2/2286ms16196 KiB
20Accepted2/2277ms16760 KiB
21Accepted2/2282ms16948 KiB