FESTIVAL

Tại một ngôi làng nhỏ ở Lộc Hà, có \(n\) ngôi nhà xếp thành một hàng. Ngôi nhà thứ \(i\)\(a_{i}\) thành viên trong gia đình. Để tăng thu nhập cho làng, trưởng làng tổ chức một chương trình. Mỗi ngày, ông sẽ chọn đúng \(k\) nhóm nhà sao cho:

- Mỗi nhóm gồm ít nhất một ngôi nhà.

- Mỗi ngôi nhà chỉ thuộc về một nhóm duy nhất.

- Các ngôi nhà trong cùng một nhóm phải nằm liền kề nhau.

Sau đó, mỗi nhóm sẽ quyên góp một số tiền bằng với Ước chung lớn nhất (GCD) của số thành viên trong tất cả các ngôi nhà trong nhóm đó. Trưởng làng sẽ luôn chọn cách phân nhóm khác nhau mỗi ngày. Lễ hội kết thúc khi tất cả các cách phân nhóm \(k\) nhóm khác nhau đã được thực hiện. Trưởng làng muốn biết tổng số tiền quyên góp được sau lễ hội là bao nhiêu. Do kết quả có thể rất lớn, hãy trả lời phần dư của kết quả chia cho \(10^{9} + 7\)

Dữ liệu vào:

- Dòng đầu tiên: \(n\)\(k\)

- Dòng thứ hai: \(a_{1},a_{2},\ldots,a_{n}\)

Kết quả:

- Một dòng duy nhất in tổng thu nhập thu được sau toàn bộ lễ hội, chia dư cho \(10^{9} + 7\).

Ví dụ:

Input Output
3 2
6 4 5
44

Giải thích:

Các cách chia nhóm và thu nhập tương ứng:

- [6] [4] 5 → 6 + 4 = 10

- [6] 4 [5] → 6 + 5 = 11

- [6] [4 5] → 6 + 1 = 7

- [6 4] [5] → 2 + 5 = 7

- 6 [4] [5] → 4 + 5 = 9

Tổng cộng: 10 + 11 + 7 + 7 + 9 = 44

Ràng buộc:

- \(1\ \leq \ n\ \leq \ 50,000\ \)

- \(1\ \leq \ k\ \leq \ min(n,\ 20)\)

- \(1\ \leq \ a_{i}\ \leq \ 100,000\)

Subtasks:

- 10% điểm: \(n\ \leq \ 10\)

- 10% điểm: \(n\ \leq \ 500,\ k = 1\)

- 10% điểm: \(n \leq 500,\ k \leq \ 2\)

- 20% điểm: \(k = 1\)

- 20% điểm: \(a_{1} = a_{2} = \ldots = a_{n}\)

- 30% điểm: Không có ràng buộc bổ sung

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. qtaydzs1tg (17/23)
  2. ducanhbc (16/23)
  3. duythai (12/18)
Trong 7 ngày
  1. haiyen2011 (69/149)
  2. khanhchi_29 (66/80)
  3. qtaydzs1tg (57/90)
Trong 30 ngày
  1. nongvantien11 (115/189)
  2. trungo0 (112/199)
  3. ngocbichh (110/267)
Thống kê
AC/Sub: 120817/226949
Pascal: 18142
C++: 157988
Python: 50747
Lượt xem/tải tests: 41021

Lưu Hải Phong - 2020
[email protected]