Chụp ảnh 2 (hard version)

Xem dưới dạng PDF

Gửi bài giải

Điểm: 50
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Kiểu bài tập

Một nhóm có \(n\) người bạn, các bạn được đánh số hiệu từ \(1\) đến \(n\). Mọi người dự định tất cả đứng thành một hàng ngang để cùng nhau chụp ảnh. Đánh số \(n\) vị trí đứng từ trái sang phải bắt đầu từ \(1\) đến \(n\). Với một số nguyên dương \(k\), khi xếp hàng ai cũng mong muốn chênh lệch giữa số hiệu của mình với vị trí đứng không vượt quá \(k\).

Yêu cầu

  • Cho hai số nguyên dương \(n, k\), hãy đếm số cách xếp \(n\) người vào \(n\) vị trí để chụp ảnh sao cho người có số hiệu \(i\) (với \(1 \le i \le n\)) xếp vào vị trí \(j\) (với \(1 \le j \le n\)) thì \(|i - j| \le k\).

Dữ liệu vào

  • Vào từ thiết bị vào chuẩn gồm hai số nguyên dương \(n, k\) \((1 \le n \le 10^9, k \le 9)\).

Dữ liệu ra

  • Một dòng chứa một số là phần dư của kết quả tính được chia dư cho \((10^9 + 7)\).

Ràng buộc:

  • Subtask 1 (50%): \(k \le 4\);
  • Subtask 2 (50%): Không có ràng buộc gì thêm.

Input 1

3 1

Output 1

3

Input 2

3 2

Output 2

6

Nhận xét

Không có ý kiến tại thời điểm này.