trang chủ / bài tập / dreamset

Dreamoon và các tập hợp

Đề bài

Mô tả

Một tập S gồm đúng bốn số nguyên dương phân biệt được gọi là có hạng k nếu với mọi cặp phần tử phân biệt si,sj của S ta đều có gcd(si,sj)=k (ước chung lớn nhất của mọi cặp phần tử đều bằng đúng k).

Cho hai số nguyên nk. Hãy tạo ra n tập, mỗi tập có hạng k, sao cho các tập đều chỉ dùng các số nguyên trong đoạn từ 1 đến mkhông có số nguyên nào được dùng ở hai tập khác nhau (một số có thể không được dùng ở tập nào). Hãy tìm giá trị m nhỏ nhất để điều này thực hiện được, và in ra một cách xây dựng ứng với m đó.

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên nk.

Dữ liệu ra

Dòng đầu in số nguyên m nhỏ nhất.

Trên n dòng tiếp theo, mỗi dòng in bốn số nguyên mô tả một tập.

Thứ tự các tập cũng như thứ tự các số trong mỗi tập không quan trọng. Nếu có nhiều đáp án cùng đạt m nhỏ nhất, in ra bất kỳ đáp án nào.

Ràng buộc

  • 1n10000
  • 1k100

Ví dụ

Input Output Giải thích
1 1 5
1 2 3 5
Tập {1, 2, 3, 5} có mọi cặp với gcd=1. Tập {1, 2, 3, 4} không hợp lệ vì gcd(2,4)=21.
2 2 22
2 4 6 10
14 16 18 22
Hai tập rời nhau, mỗi tập có mọi cặp gcd=2, mọi số đều 22.

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 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