AtCoder Beginner Contest 171 - F - Strivore

Xem PDF

Điểm: 1 Thời gian: 2.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Có bao nhiêu xâu có thể được tạo thành bằng cách áp dụng thao tác sau trên một xâu \(S\) cho trước đúng \(K\) lần: "chọn một ký tự in thường trong bảng chữ cái tiếng Anh và chèn vào bất cứ đâu trong xâu \(S\)"?

Đáp án có thể rất lớn, nên hãy in kết quả chia lấy dư cho \((10^9+7)\).

Dữ liệu đầu vào

  • Dòng đầu tiên chứa một số nguyên \(K\) \((1 \leq K \leq 10^6)\)
  • Dòng thứ hai chứa một xâu \(S\) có độ dài dương không quá \(10^6\), chỉ gồm các ký tự trong bảng chữ cái tiếng Anh.

Định dạng đầu ra

  • In ra số lượng xâu thỏa mãn đề, chia lấy dư cho \((10^9+7)\).

Ví dụ

Ví dụ 1

Đầu vào
5
oof
Đầu ra
575111451
Giải thích

Ví dụ, chúng ta có thể tạo ra các xâu proofend, moonwolf, và onionpuf; nhưng ta không thể tạo ra xâu oofsix (quá ngắn), oofelevennn (quá dài), hay voxafoltfooooooo (không được tạo thành từ xâu oof).

Ví dụ 2

Đầu vào
37564
whydidyoudesertme
Đầu ra
318008117

Bình luận

Không có bình luận nào.