#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 | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 30/30 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1808 KiB | |||
2 | Elfogadva | 0/0 | 158ms | 11776 KiB | |||
3 | Elfogadva | 1/1 | 3ms | 2096 KiB | |||
4 | Elfogadva | 1/1 | 3ms | 2228 KiB | |||
5 | Elfogadva | 1/1 | 3ms | 2444 KiB | |||
6 | Elfogadva | 1/1 | 3ms | 2676 KiB | |||
7 | Elfogadva | 1/1 | 3ms | 2876 KiB | |||
8 | Elfogadva | 1/1 | 3ms | 3104 KiB | |||
9 | Elfogadva | 2/2 | 3ms | 3240 KiB | |||
10 | Elfogadva | 2/2 | 4ms | 3288 KiB | |||
11 | Elfogadva | 2/2 | 4ms | 3288 KiB | |||
12 | Elfogadva | 2/2 | 14ms | 4436 KiB | |||
13 | Elfogadva | 2/2 | 32ms | 5496 KiB | |||
14 | Elfogadva | 2/2 | 136ms | 11376 KiB | |||
15 | Elfogadva | 1/1 | 173ms | 16532 KiB | |||
16 | Elfogadva | 1/1 | 146ms | 12760 KiB | |||
17 | Elfogadva | 2/2 | 192ms | 16820 KiB | |||
18 | Elfogadva | 2/2 | 178ms | 16212 KiB | |||
19 | Elfogadva | 2/2 | 190ms | 16848 KiB | |||
20 | Elfogadva | 2/2 | 186ms | 17476 KiB | |||
21 | Elfogadva | 2/2 | 192ms | 17636 KiB |