Chuyến lưu diễn của pháp sư

Đề bài

Mô tả

n thành phố, một số cặp thành phố được nối với nhau bằng đường hai chiều. Giữa hai thành phố có không quá một con đường trực tiếp. Mạng lưới đường không nhất thiết liên thông, nghĩa là có thể không đi được từ thành phố này tới thành phố khác.

Một pháp sư muốn thực hiện càng nhiều buổi diễn (episode) càng tốt. Mỗi buổi diễn có dạng như sau:

  • Pháp sư xuất phát tại một thành phố x và biểu diễn tại đó;
  • Đi theo một con đường tới thành phố y kề với x, rồi biểu diễn tại y;
  • Đi theo một con đường tới thành phố z kề với y, rồi biểu diễn tại z và kết thúc buổi diễn.

Như vậy mỗi buổi diễn là một bộ ba thành phố x,y,z sao cho có đường trực tiếp giữa xy, và có đường trực tiếp giữa yz.

Pháp sư không thích dùng lại đường: mỗi con đường chỉ được sử dụng nhiều nhất một lần trên toàn bộ các buổi diễn (không phân biệt chiều đi). Một thành phố thì có thể được ghé thăm nhiều lần, ràng buộc chỉ đặt trên các con đường.

Hãy giúp pháp sư lập kế hoạch với số buổi diễn nhiều nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: số thành phố và số con đường.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ai,bi (aibi): có một con đường nối thành phố aibi. Không có hai con đường nối cùng một cặp thành phố.

Dữ liệu ra

  • Dòng đầu in ra w: số buổi diễn nhiều nhất.
  • w dòng tiếp theo, mỗi dòng in ba số nguyên x,y,z mô tả một buổi diễn theo thứ tự các thành phố pháp sư ghé thăm.

Nếu có nhiều phương án tối ưu, in ra một phương án bất kỳ.

Ràng buộc

  • 1n2·105
  • 0m2·105
  • 1ai,bin, aibi

Ví dụ

Input Output Giải thích
4 5
1 2
3 2
2 4
3 4
4 1
2
4 2 1
4 3 2
Buổi diễn 1 dùng đường 4-2 và 2-1; buổi diễn 2 dùng đường 4-3 và 3-2. Cả 4 con đường này đều khác nhau, đường 4-1 không được dùng. Không thể có nhiều hơn 2 buổi diễn vì đồ thị có 5 đường, mỗi buổi diễn tốn 2 đường. Đáp án khác cũng được chấp nhận nếu vẫn đủ 2 buổi diễn hợp lệ.
5 8
5 3
1 2
4 5
5 1
2 5
4 3
1 4
3 2
4
1 5 4
2 5 3
3 2 1
1 4 3
Đồ thị có 8 con đường nên có thể dùng hết thành 4 buổi diễn, mỗi con đường được dùng đúng một lần.
3 2
1 2
3 2
1
1 2 3
Chỉ có 2 con đường 1-2 và 2-3, gộp thành đúng 1 buổi diễn đi qua thành phố trung tâm 2.

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