Bài tập nhóm

Đề bài

Mô tả

Lớp học có n học sinh đang làm bài tập nhóm. Các học sinh sẽ chia thành các nhóm (mỗi nhóm có thể gồm một hoặc nhiều học sinh), làm phần việc của mình một cách độc lập, rồi cùng thảo luận kết quả.

Học sinh thứ i cần ai phút để hoàn thành phần việc của mình. Nếu trong cùng một nhóm có học sinh nhanh và học sinh chậm thì sẽ rất khó chịu — định nghĩa độ chênh của một nhóm là maxaiminai trên các học sinh thuộc nhóm đó. Một nhóm chỉ có một học sinh có độ chênh bằng 0.

Đếm số cách chia n học sinh thành các nhóm sao cho tổng độ chênh của tất cả các nhóm không vượt quá k. Hai cách chia được xem là khác nhau nếu tồn tại một cặp học sinh ở cùng nhóm trong cách chia này nhưng ở khác nhóm trong cách chia kia.

In kết quả theo modulo 109+7.

Dữ liệu vào

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

Dữ liệu ra

  • Một số nguyên duy nhất — số cách chia nhóm hợp lệ, lấy modulo 109+7.

Ràng buộc

  • 1n200
  • 0k1000
  • 1ai500

Ví dụ

Input Output Giải thích
3 2
2 4 5
3 Ba cách chia hợp lệ: {1,2},{3} (chênh 2+0=2); {1},{2,3} (chênh 0+1=1); {1},{2},{3} (chênh 0).
4 3
7 8 9 10
13 13 cách chia với tổng độ chênh 3.
4 0
5 10 20 21
1 Tổng độ chênh phải bằng 0, nên mỗi học sinh phải tạo thành nhóm riê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.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