HILO

Đề bài

Mô tả

Bessie có một số bí mật x+0.5, trong đó x là một số nguyên nằm trong khoảng từ 0 đến N (0xN). Elsie cố gắng đoán số này bằng cách hỏi "số i cao hay thấp?" cho các số nguyên từ 1 đến N.

  • Nếu i>x+0.5: Bessie trả lời "HI".
  • Nếu i<x+0.5: Bessie trả lời "LO".

Elsie sử dụng chiến lược sau: cô tạo một hoán vị p1,p2,,pN của các số từ 1 đến N, rồi đoán lần lượt p1,p2, Tuy nhiên, cô bỏ qua lần đoán pi nếu kết quả đã rõ ràng, cụ thể:

  • Bỏ qua pi nếu đã từng đoán pj<pi và nhận "HI" (tức pj đã lớn hơn x+0.5, nên pi cũng vậy).
  • Bỏ qua pi nếu đã từng đoán pj>pi và nhận "LO" (tức pj đã nhỏ hơn x+0.5, nên pi cũng vậy).

Nối tất cả các phản hồi lại thành một xâu ký tự (ví dụ "HILOHILO"). Đếm số lần xâu con "HILO" xuất hiện trong xâu phản hồi.

Cho Nx, tính tổng số lần "HILO" xuất hiện trên tất cả N! hoán vị mà Elsie có thể chọn, modulo 109+7.

Dữ liệu vào

Một dòng chứa hai số nguyên Nx.

Dữ liệu ra

In ra một số nguyên duy nhất: tổng số lần "HILO" xuất hiện trên tất cả các hoán vị, modulo 109+7.

Ràng buộc

  • 1N5000
  • 0xN

Ví dụ

Input Output Giải thích
4 2 17 Số bí mật là 2.5. Ví dụ với hoán vị (4,1,3,2): đoán 4 ("HI"), đoán 1 ("LO"), đoán 3 (bỏ qua vì 1 đã "LO" và 1<3... nhưng 4 đã "HI" và 4>3? Không, 3<4 nên "HI" từ 4 không cho biết kết quả 3. Thực tế 3>2.5 nên đoán 3 cho "HI", đoán 2 bỏ qua vì 1 đã "LO". Xâu: "HILOHI", có 1 lần "HILO". Tổng trên tất cả 24 hoán vị là 17.
60 10 508859913 N=60, x=10. Kết quả modulo 109+7.

Ghi chú

Lưu ý rằng Elsie bỏ qua lần đoán pi chỉ khi có thể suy ra kết quả từ các lần đoán trước. Cụ thể, nếu đã biết HI cho một giá trị nhỏ hơn pi, hoặc LO cho một giá trị lớn hơn pi, thì kết quả đoán pi đã hiển nhiên.

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