Дана бинарная строка $$$s$$$ длины $$$n$$$. Символы строки нумеруются от $$$1$$$ до $$$n$$$.
Необходимо разбить все числа от $$$1$$$ до $$$n$$$ на непустые множества так, чтобы каждое число принадлежало ровно одному множеству. Для каждой пары различных чисел $$$x$$$ и $$$y$$$ из одного множества должно выполняться хотя бы одно из условий:
Для множества $$$M$$$ обозначим через $$$f(M)$$$ количество различных символов среди $$$s_x$$$ по всем $$$x \in M$$$. Стоимость множества $$$M$$$ равна $$$|M| \cdot f(M)$$$, где $$$|M|$$$ — количество элементов в $$$M$$$. Стоимость разбиения равна суммарной стоимости всех множеств.
Например, если дана строка $$$s$$$, равная 10001000, и мы рассматриваем разбиение на множества $$$\{1, 2\}, \{3, 8\}, \{4, 5, 6\}, \{7\}$$$, то оно корректно, и стоимость разбиения равна $$$2 \cdot 2 + 2 \cdot 1 + 3 \cdot 2 + 1 \cdot 1 = 13$$$.
Найдите максимальную стоимость разбиения и количество разбиений с такой стоимостью. Разбиения, отличающиеся только порядком множеств или порядком элементов внутри множеств, считаются одинаковыми. Количество разбиений выведите по модулю $$$998\,244\,353$$$.
В первой строке дано целое число $$$t$$$ ($$$1 \le t \le 500$$$) — количество наборов входных данных.
Первая строка каждого набора входных данных содержит целое число $$$n$$$ ($$$1 \le n \le 5000$$$) — длину строки.
Вторая строка каждого набора входных данных содержит строку $$$s$$$ длины $$$n$$$, состоящую только из символов 0 и 1.
Для каждого набора входных данных выведите два целых числа: максимальную стоимость разбиения и количество разбиений с такой стоимостью (взятую по модулю $$$998\,244\,353$$$).
38100010006000111801010101
13 58 416 4
| Название |
|---|


