Huấn luyện viên

Đề bài

Mô tả

Một huấn luyện viên lập trình có n học sinh, trong đó n chia hết cho 3. Các học sinh được đánh số từ 1 tới n.

Trước kỳ thi, huấn luyện viên muốn chia toàn bộ học sinh thành các đội, mỗi đội đúng 3 người. Với một số cặp học sinh, ta biết rằng họ muốn được xếp chung đội. Quan hệ này là đối xứng: nếu học sinh i muốn cùng đội với học sinh j thì j cũng muốn cùng đội với i.

Huấn luyện viên muốn các điều kiện sau được thoả mãn cùng lúc:

  • Mỗi học sinh thuộc đúng một đội.
  • Mỗi đội gồm đúng 3 học sinh.
  • Nếu học sinh ij muốn cùng đội thì họ phải nằm trong cùng một đội.

Hãy giúp huấn luyện viên tìm một cách chia phù hợp, hoặc thông báo rằng không tồn tại cách chia nào.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm — số học sinh và số cặp mong muốn chung đội.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ai,bi (1ai<bin) — học sinh aibi muốn chung đội. Các cặp đôi một khác nhau.

Dữ liệu ra

  • Nếu không tồn tại cách chia hợp lệ, in ra 1.
  • Ngược lại, in ra n/3 dòng, mỗi dòng chứa ba số nguyên xi,yi,zi (1xi,yi,zin) là chỉ số ba học sinh thuộc đội thứ i. Mỗi học sinh xuất hiện đúng một lần trên toàn bộ n/3 dòng. Nếu có nhiều cách chia, in ra cách bất kỳ.

Ràng buộc

  • 3n48, n chia hết cho 3.
  • 0mn(n1)/2.

Ví dụ

Input Output Giải thích
3 0 1 2 3 Không có ràng buộc nào, ba học sinh tự do tạo thành một đội.
6 4
1 2
2 3
3 4
5 6
-1 Các ràng buộc nối 1-2-3-4 thành một thành phần 4 học sinh, vượt quá kích thước đội cho phép.
3 3
1 2
2 3
1 3
1 2 3 Ba học sinh đều muốn chung đội, ghép thành một đội duy nhất.

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