Tính hash cơ bản

Xem dưới dạng PDF

Gửi bài giải


Điểm: 10
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

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

Trong giờ tin học, Tý được học về hash xâu. Hash của một xâu được tính bằng công thức:

\[H(S) = (S[0] \cdot B^{n-1} + S[1] \cdot B^{n-2} + \cdots + S[n-1] \cdot B^{0}) \mod M\]

với \(B = 31\), \(M = 10^9 + 7\) và \(S[i]\) là mã số của ký tự thứ \(i\) (với a = 1, b = 2, ..., z = 26).

Hãy giúp Tý tính hash của xâu \(S\).

Định dạng đầu vào

  • Một dòng chứa xâu \(S\) chỉ gồm chữ cái in thường, độ dài không quá \(10^5\).

Định dạng đầu ra

  • In ra một số nguyên là giá trị hash của xâu \(S\).

Ví dụ

Input:

abc

Output:

1026

Giải thích: hash = 1·31^2 + 2·31 + 3 = 961 + 62 + 3 = 1026.

Ràng buộc

  • 100% số điểm: \(|S| \le 10^5\).

Nhận xét

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