Nudny problem#232

Nudny problem

2,5 sekundy
256 megabajtów
Bardzo trudne

Dane jest słowo długości . Zdefiniujmy funkcję dla ciągu:

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

Gdzie |a-b| oznacza odległość między znakami i w alfabecie. Innymi słowy, oznacza sumę |s_i-s_j| dla wszystkich 1 \le i \le j \le n. Następnie niech

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

Gdzie oznacza podciąg ciągu od indeksu do . Innymi słowy, oznacza sumę f(s[l..r]) dla wszystkich 1 \le l \le r \le n.

Twoim zadaniem jest rozpatrzeć zapytań. Każde zapytanie zmienia element na pozycji na , tj. s_p = c. Wypisz mod przed rozpatrzeniem zapytań oraz po każdym rozpatrzonym zapytaniu.

Dane wejściowe

Pierwsza linia wejścia zawiera pojedynczą liczbę całkowitą (1 \le n \le 2 \cdot 10^5) — długość słowa .

Druga linia wejścia zawiera słowo długości .

Trzecia linia wejścia zawiera pojedynczą liczbę całkowitą (1 \le q \le 2 \cdot 10^5) — liczbę zapytań.

Następne linii zawierają liczbę całkowitą (1 \le p \le n) i znak (c \in \{a,b, \dots, y,z\}) — opis zapytań.

Dane wyjściowe

Wypisz q+1 liczb całkowitych w osobnych liniach — odpowiedzi na zapytania.

Przykłady

Przykład 1

Loading
Loading

Przykład 2

Loading
Loading

Punktacja

  1. ( punkty): n \le 3;

  2. ( punktów): n,q \le 50;

  3. ( punktów): n,q \le 100;

  4. ( punktów): c,s_i \in \{a,b\};

  5. ( punktów): n,q \le 5000;

  6. ( punktów): n,q \le 20000;

  7. ( punktów): c,s_i \le "n";

  8. ( punktów): n,q \le 10^5;

  9. ( punktów): brak dodatkowych ograniczeń.