6644 2023. 12. 14 18:24:10 mmated Adószedő cpp17 Elfogadva 30/30 211ms 27624 KiB
#include <bits/stdc++.h>
using namespace std;
#define f(i,k,n) for(int i=k; i<n; i++)
#define ll long long
const int inf = INT_MAX;

void solve()
{
    int n,k,f;
    cin>>n>>k>>f;
    vector<vector<int>>g(n+1);
    set<pair<int,int>>c;
    int a,b;
    f(i,0,k)
    {
        cin>>a>>b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    queue<int> q;
    q.push(f);
    vector<int> d(n+1,inf);
    vector<bool> v(n+1,false);
    d[f]=0;
    v[f]=true;
    while(!q.empty())
    {
        int w=q.front();
        q.pop();
        for(auto u : g[w])
        {
            if(v[u]==false)
            {
                v[u]=true;
                d[u]=d[w]+1;
                c.insert(make_pair(u,w));
                q.push(u);
            }
            else if(d[u]==d[w]-1)   c.insert(make_pair(w,u));
        }
    }
    cout<<c.size()<<"\n";
    for(pair<int,int> p : c)    cout<<p.first<<" "<<p.second<<"\n";
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int t=1;
    //cin>>t;
    while(t--)  solve();
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 30/30
1 Elfogadva 0/0 3ms 1828 KiB
2 Elfogadva 0/0 174ms 21464 KiB
3 Elfogadva 1/1 3ms 2128 KiB
4 Elfogadva 1/1 3ms 2344 KiB
5 Elfogadva 1/1 3ms 2556 KiB
6 Elfogadva 1/1 3ms 2636 KiB
7 Elfogadva 1/1 3ms 2852 KiB
8 Elfogadva 1/1 3ms 3076 KiB
9 Elfogadva 2/2 4ms 3516 KiB
10 Elfogadva 2/2 4ms 3908 KiB
11 Elfogadva 2/2 4ms 4248 KiB
12 Elfogadva 2/2 13ms 5644 KiB
13 Elfogadva 2/2 29ms 7832 KiB
14 Elfogadva 2/2 127ms 20176 KiB
15 Elfogadva 1/1 163ms 26008 KiB
16 Elfogadva 1/1 137ms 22188 KiB
17 Elfogadva 2/2 211ms 27616 KiB
18 Elfogadva 2/2 189ms 25552 KiB
19 Elfogadva 2/2 182ms 26668 KiB
20 Elfogadva 2/2 195ms 27076 KiB
21 Elfogadva 2/2 184ms 27624 KiB