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

Viết Code

Đề bài

Mô tả

Một nhóm n lập trình viên cần viết đúng m dòng code. Lập trình viên thứ i tạo ra đúng ai lỗi (bug) trên mỗi dòng code mà mình viết.

Một kế hoạch là một dãy số nguyên không âm v1,v2,,vn với v1+v2++vn=m. Theo kế hoạch này, lập trình viên thứ 1 viết v1 dòng đầu, lập trình viên thứ 2 viết v2 dòng tiếp theo, và cứ thế cho đến hết.

Một kế hoạch được gọi là tốt nếu tổng số lỗi trên toàn bộ m dòng code không vượt quá b.

Hãy đếm số kế hoạch tốt phân biệt, kết quả lấy dư cho số nguyên dương mod cho trước.

Hai kế hoạch (v1,,vn)(v1,,vn) được coi là khác nhau nếu tồn tại chỉ số i sao cho vivi.

Dữ liệu vào

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

Dữ liệu ra

In ra một số nguyên duy nhất — số kế hoạch tốt, lấy dư cho mod.

Ràng buộc

  • 1n,m500
  • 0b500
  • 1mod109+7
  • 0ai500

Ví dụ

Input Output Giải thích
3 3 3 100
1 1 1
10 Mỗi lập trình viên tạo 1 lỗi/dòng, viết tổng cộng 3 dòng nên tổng lỗi luôn bằng 3 (3). Số nghiệm không âm của v1+v2+v3=3(52)=10.
3 6 5 1000000007
1 2 3
0 Mỗi dòng tạo ít nhất 1 lỗi nên 6 dòng tạo ít nhất 6 lỗi, vượt quá b=5.
3 5 6 11
1 2 1
0 Đáp án thực tế là 11, lấy dư cho 11 ra 0.

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