{"code":"bfs","name":"BFS Cơ bản","description":"Cho một đồ thị vô hướng gồm $N$ đỉnh đánh số từ 1 tới $N$ và $M$ cạnh. Độ dài của mỗi cạnh có giá trị là 1. Một đồ thị sẽ có 1 nút trung tâm $S$.\r\n\r\n#### Yêu cầu: với mỗi đỉnh có thể tới được từ đỉnh $S$, tính khoảng cách ngắn nhất từ đỉnh đó tới $S$ và in ra các đỉnh theo thứ tự khoảng cách ngắn nhất tăng dần. *Lưu ý*: nếu 2 đỉnh có khoảng cách bằng nhau thì nhãn nào nhỏ hơn sẽ đứng trước.\r\n\r\n#### Input\r\n - Dòng đầu gồm 3 số nguyên $N, M, S$ ($N \\leq 100000, M \\leq 100000, 1 \\leq S \\leq N$)\r\n - M dòng sau mỗi dòng gồm 2 số thể hiện 2 đầu của một cạnh.\r\n \r\n\r\n#### Output\r\n- In ra số dòng tương ứng với số đỉnh có thể tới được từ S theo thứ tự khoảng cách ngắn nhất tăng dần.\r\n- Trên mỗi dòng in ra nhãn của đỉnh đó và khoảng cách ngắn nhất của đỉnh đó tới S.\r\n####Example\r\n!!! question \"Test 1\"\r\n    ???+ \"Input\"\r\n        ```sample\r\n        7 6 1\r\n        1 2\r\n        2 3\r\n        3 4\r\n        4 5\r\n        5 6\r\n        1 3 \r\n        ```\r\n    ???+ success \"Output\"\r\n        ```sample\r\n        1 0\r\n        2 1\r\n        3 1\r\n        4 2\r\n        5 3\r\n        6 4\r\n        ```","points":300.0,"partial":true,"time_limit":1.0,"memory_limit":1048000,"short_circuit":false,"allowed_languages":[3,4,34,36,37,5,6,11,12,14,28,2,38,39,9,18,17,29,23,27,35,25,26,10,7,19,32,1,8,15,16,24,20,33,13,41,21,40],"is_public":true,"is_manually_managed":false,"permissions":{"can_edit":false}}