Hydra

Đề bài

Mô tả

Đồ thị hydra là một cây có cấu trúc như sau. Có hai đỉnh uv được nối với nhau bằng một cạnh; u gọi là ngực, v gọi là bụng. Ngực u được nối với h đỉnh khác, gọi là các đầu. Bụng v được nối với t đỉnh khác, gọi là các đuôi. Tất cả h+t+2 đỉnh này phải đôi một phân biệt.

Cho một đồ thị vô hướng G gồm n đỉnh và m cạnh, không có khuyên và không có cạnh bội. Hãy tìm trong G một hydra với số đầu là h và số đuôi là t, hoặc khẳng định rằng không tồn tại.

Nói cách khác, cần tìm một cạnh (u,v) của G, một tập h đỉnh kề với u và một tập t đỉnh kề với v, sao cho toàn bộ h+t+2 đỉnh (gồm u, v, các đầu và các đuôi) là đôi một phân biệt.

Dữ liệu vào

  • Dòng đầu chứa bốn số nguyên n, m, h, t.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ai, bi — một cạnh nối hai đỉnh aibi.

Dữ liệu ra

  • Nếu không tồn tại hydra, in ra một dòng chứa NO.
  • Ngược lại, in ra:
    • Dòng đầu chứa YES.
    • Dòng thứ hai chứa hai số nguyên uv.
    • Dòng thứ ba chứa h số — chỉ số các đỉnh là đầu.
    • Dòng thứ tư chứa t số — chỉ số các đỉnh là đuôi.

Tất cả các số được in ra phải đôi một phân biệt. Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 1n,m105
  • 1h,t100
  • 1ai,bin, aibi
  • G không có khuyên và không có cạnh bội.

Ví dụ

Input Output Giải thích
9 12 2 3
1 2
2 3
1 3
1 4
2 5
4 5
4 6
6 5
6 7
7 5
8 7
9 1
YES
4 1
5 6
2 3 9
Chọn ngực u=4, bụng v=1 (cạnh 4-1 tồn tại). Hai đầu kề 45,6; ba đuôi kề 12,3,9. Tất cả 7 đỉnh phân biệt.
7 10 3 3
1 2
2 3
1 3
1 4
2 5
4 5
4 6
6 5
6 7
7 5
NO Không tồn tại cạnh nào có thể bố trí đủ 3 đầu và 3 đuôi phân biệt.
8 7 5 1
1 2
2 3
3 4
3 5
3 6
3 7
3 8
YES
3 2
4 5 6 7 8
1
Ngực u=3 (bậc 6) cung cấp 5 đầu 4,5,6,7,8; bụng v=2 cung cấp đuôi 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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0