Нудна задача#232

Нудна задача

2,5 секунди
256 мегабайтів
Дуже складна

Дано рядок довжини . Визначимо функцію від рядка:

f(s) = \displaystyle \sum_{i=1}^n \sum_{j=i}^n |s_i - s_j|

Тут |a-b| позначає відстань між символами та в алфавіті. Іншими словами, позначає суму |s_i-s_j| для всіх 1 \le i \le j \le n. Далі, визначимо

cost(s) = \sum_{i=1}^n \sum_{j=i}^n f(s[i..j])

Тут позначає підрядок рядка від індексу до . Іншими словами, позначає суму f(s[l..r]) для всіх 1 \le l \le r \le n.

Дано запитів. Кожен запит змінює елемент на позиції на , тобто робить s_p = c. Вам потрібно вивести mod перед усіма запитами та після кожного запиту.

Вхідні дані

Перший рядок містить одне ціле число (1 \le n \le 2 \cdot 10^5) — довжину рядка .

Другий рядок містить рядок довжини .

Третій рядок містить одне ціле число (1 \le q \le 2 \cdot 10^5) — кількість запитів.

Наступні рядків містять ціле число (1 \le p \le n) та символ (c \in \{a,b, \dots, y,z\}) — опис запитів.

Вихідні дані

Виведіть q+1 цілих чисел в окремих рядках — відповіді на задачу.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Оцінювання

  1. ( бали): n \le 3;

  2. ( балів): n,q \le 50;

  3. ( балів): n,q \le 100;

  4. ( балів): c,s_i \in \{a,b\};

  5. ( балів): n,q \le 5000;

  6. ( бал): n,q \le 20000;

  7. ( балів): c,s_i \le "n";

  8. ( балів): n,q \le 10^5;

  9. ( балів): без додаткових обмежень.