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

Dãy đấu và số kẹo

Đề bài

Mô tả

n đối thủ được đánh số từ 1 đến n, đối thủ thứ i giữ ai viên kẹo.

Một người chơi xuất phát với x viên kẹo, chọn một hoán vị P của 1,2,,n rồi lần lượt thi đấu với các đối thủ theo thứ tự P1,P2,,Pn. Ở lượt thứ i:

  • Nếu số kẹo người chơi đang có lớn hơn hoặc bằng aPi thì người chơi thắng và được thưởng thêm 1 viên kẹo, viên kẹo này dùng được ngay từ lượt kế tiếp.
  • Ngược lại người chơi thua lượt đó và không nhận được gì.

Gọi f(x) là số hoán vị P giúp người chơi thắng cả n lượt khi xuất phát với x viên kẹo.

Cho thêm một số nguyên tố p thoả mãn pn. Một số nguyên dương x được gọi là tốt nếu f(x) không chia hết cho p. Hãy tìm tất cả các số tốt.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên np.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

  • Dòng đầu in ra số lượng số tốt.
  • Dòng thứ hai in ra tất cả các số tốt theo thứ tự tăng dần, cách nhau bởi dấu cách. Nếu không có số tốt nào thì in ra một dòng trống.

Ràng buộc

  • 2pn2000
  • p là số nguyên tố
  • 1ai109

Ví dụ

Input Output Giải thích
3 2
3 4 5
1
3
Với x2 không có hoán vị nào hợp lệ nên f(x)=0, mà 0 chia hết cho 2 nên các số này không tốt. Với x=3 chỉ có hoán vị {1,2,3} hợp lệ, f(3)=1 nên 3 là số tốt. Với x=4f(4)=4, với x5f(x)=6, đều chia hết cho 2.
4 3
2 3 5 6
2
3 4
f(3)=2f(4)=4 đều không chia hết cho 3.
4 3
9 1 1 1
0
Với mọi x nguyên dương, f(x) đều chia hết cho 3, nên dòng thứ hai là dòng trống.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0