eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Кількість різних підрядків

Кількість різних підрядків

Вам задано рядок \textbf{s = s_1s_2... s_n}, довжини \textbf{n}. Знайдіть кількість його різних підрядків. Рядок генерується незвичним способом. А саме, вам задано просте число \textbf{p} (\textbf{2} ≤ \textbf{p} ≤ \textbf{10^9}), символ \textbf{s}_i дорівнює букві під номером \textbf{(((p^i) mod (10^9+7)) mod 26)+1} у англійському алфавіті. Вважайте, що регістр усіх букв рядка однаковий. Операція \textbf{a mod b} позначає взяття залишку при діленні числа \textbf{a} на число \textbf{b}. \InputFile У першому рядку задано два цілих числа \textbf{n} та \textbf{p} (\textbf{1} ≤ \textbf{n} ≤ \textbf{10^5}, \textbf{2} ≤ \textbf{p} ≤ \textbf{10^9}). Число \textbf{p} - просте. \OutputFile Виведіть єдине ціле число --- кількість різних підрядків рядка \textbf{s}.
Ліміт часу 0.5 секунд
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
5 2
Вихідні дані #1
15
Автор Геральд Агапов
Джерело Літня школа Севастополь 2013, Хвиля 1, День 6