Cây khung st

Đề bài

Mô tả

Cho một đồ thị vô hướng liên thông gồm n đỉnh và m cạnh, không có khuyên và không có cạnh lặp. Cho thêm hai đỉnh phân biệt s, t và hai số ds, dt.

Hãy chọn ra một cây khung của đồ thị (gồm đúng n−1 cạnh của đồ thị, nối tất cả các đỉnh và không có chu trình) sao cho bậc của đỉnh s trong cây không vượt quá ds và bậc của đỉnh t trong cây không vượt quá dt, hoặc cho biết không tồn tại cây khung như vậy.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên n và m.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên u, v mô tả một cạnh nối hai đỉnh u và v.
  • Dòng cuối cùng chứa bốn số nguyên s, t, ds, dt.

Dữ liệu ra

Nếu không tồn tại cây khung thỏa mãn, in ra No.

Ngược lại, dòng đầu tiên in ra Yes, sau đó in n−1 dòng, mỗi dòng gồm hai số nguyên là hai đầu mút của một cạnh trong cây khung. Mỗi cạnh của cây được in đúng một lần, các cạnh có thể in theo thứ tự bất kỳ và hai đầu mút của mỗi cạnh cũng có thể in theo thứ tự bất kỳ.

Nếu có nhiều đáp án, in ra đáp án bất kỳ.

Ràng buộc

  • 2≤n≤2·105
  • 1≤m≤min(4·105,n(n−1)2)
  • 1≤u,v≤n, u≠v; đồ thị liên thông, không có cạnh lặp
  • 1≤s,t≤n, s≠t
  • 1≤ds,dt≤n−1

Ví dụ

Input Output Giải thích
3 3
1 2
2 3
3 1
1 2 1 1
Yes
1 3
2 3
Cạnh (1,2) không được dùng; đỉnh 1 và đỉnh 2 đều có bậc 1.
7 8
7 4
1 3
5 4
5 7
3 2
2 4
6 1
1 2
6 4 1 4
Yes
1 3
5 7
3 2
4 5
6 1
4 2
Đỉnh 6 có bậc 1, đỉnh 4 có bậc 2.
3 2
2 1
3 1
1 2 1 2
No Đồ thị chính là một cây, đỉnh 1 bắt buộc có bậc 2>ds=1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0