Одна известная команда впервые за несколько месяцев решила написать тренировку. Но друзья решили, что им чужды старые технологии, поэтому они попросили нейросеть сгенерировать задачу, а потом решить ее (ведь зачем решать задачи самим). Сама задача звучала довольно просто.
Вам даны $$$n$$$ строк $$$s_1, s_2, \ldots, s_n$$$, состоящих из цифр от $$$0$$$ до $$$9$$$. Необходимо посчитать количество пар индексов $$$(i, j)$$$ $$$1 \le i \lt j \le n$$$, таких что строка $$$s_i + s_j$$$ является хорошей, где $$$s_i + s_j$$$ — это конкатенация строк $$$s_i$$$ и $$$s_j$$$. Строка $$$t$$$ длины $$$m$$$ называется хорошей, если для любого индекса $$$1 \lt i \le m$$$ выполнено неравенство $$$t_{i - 1} \le t_i$$$.
Сгенерировать задачу нейросеть смогла, а вот решить ее — нет. Но друзья уже очень устали, поэтому решать эту задачу придется вам.
Первая строка содержит одно целое число $$$n$$$ ($$$1 \le n \le 100\,000$$$) — количество строк.
Каждая из следующих $$$n$$$ строк содержит строку $$$s_i$$$. Гарантируется, что строки $$$s_i$$$ состоят только из цифр от $$$0$$$ до $$$9$$$.
Гарантируется, что сумма длин строк не превосходит $$$100\,000$$$.
Выведите количество пар индексов $$$(i, j)$$$ $$$1 \le i \lt j \le n$$$, таких что строка $$$s_i + s_j$$$ является хорошей.
Обратите внимание, что ответ в этой задаче может превышать возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Обозначим за $$$m$$$ сумму длин всех строк $$$s_i$$$. Иными словами, $$$m = \sum \limits_{i=1}^{n} \lvert s_i \rvert$$$.
| Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
| 0 | 0 | Тесты из условия | полная | |
| 1 | 15 | $$$n, m \le 100$$$, $$$\lvert s_i \rvert \le 3$$$ для всех $$$1 \le i \le n$$$, все строки не содержат нулей | первая ошибка | |
| 2 | 20 | $$$n, m \le 100$$$ | 1 | первая ошибка |
| 3 | 30 | $$$n \le 2\,000$$$ | 1, 2 | первая ошибка |
| 4 | 35 | нет | 1, 2, 3 | первая ошибка |
4456011239701
1
В примере подходит только одна пара индексов: $$$(2, 3)$$$. Полученная строка 011239 является хорошей.