B. Жилм и Баркнайтс
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Жили разработала игру под названием Barknights и готовится выпустить крупное обновление $$$25$$$ марта. В частности, она планирует добавить модуль для каждого оператора в игре, умножная их уровень мощности на мощности модуля.

После выхода обновления известный стример Джили оценит силу операторов и составит их рейтинг. Каждый раз, когда оператор, выпущенный раньше, окажется выше в рейтинге, чем оператор, выпущенный позже, это вызовет бурную реакцию.

К сожалению, Жили случайно опрокинула чайник с горячей водой и сломала свой компьютер, в результате чего все модули перемешались в случайном порядке. Теперь Жили хочет узнать, сколько волн реакций, по ее прогнозам, возникнет, но поскольку ей нужно переходить к следующей задаче, она поручила эту работу вам.

Даны два массива $$$a$$$ и $$$b$$$, содержащие по $$$n$$$ целых положительных чисел. Пусть $$$b'$$$ — перестановка массива $$$b$$$, выбранная равномерно случайным образом из всех $$$n!$$$ возможных перестановок. Определим $$$ c_i = a_i \cdot b'_i$$$ для $$$1\le i \le n$$$.

Найдите ожидаемое число инверсий$$$^{\text{∗}}$$$ массива $$$c$$$.

$$$^{\text{∗}}$$$Инверсия в массиве $$$c$$$ — это пара индексов $$$(i, j)$$$, такая что $$$1 \le i \lt j \le n$$$ и $$$c_i \gt c_j$$$.

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 100$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

В первой строке каждого набора входных данных содержится одно целое число $$$n$$$ ($$$1 \le n \le 2000$$$) — длина массивов $$$a$$$ и $$$b$$$.

Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 10^9$$$) — массив $$$a$$$.

Третья строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$b_1, b_2, \ldots, b_n$$$ ($$$1 \le b_i \le 10^9$$$) — массив $$$b$$$.

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2000$$$.

Выходные данные

Для каждого набора входных данных выведите ожидаемое количество инверсий в строке $$$c$$$ по модулю $$$998\,244\,353$$$.

Формально, пусть $$$M = 998\,244\,353$$$. Можно показать, что точный ответ может быть представлен в виде несократимой дроби $$$\frac{p}{q}$$$, где $$$p$$$ и $$$q$$$ — целые числа, и $$$q \not \equiv 0 \pmod{M}$$$. Выведите целое число, равное $$$p \cdot q^{-1} \bmod M$$$. Другими словами, выведите такое целое число $$$x$$$, что $$$0 \le x \lt M$$$ и $$$x \cdot q \equiv p \pmod{M}$$$.

Пример
Входные данные
3
5
1 14 5 1 4
1 1 1 1 1
3
3 2 5
3 2 5
10
10 72 65 43 73 23 78 13 49 99
31 90 45 19 44 18 59 31 48 29
Выходные данные
5
665496236
820778710
Примечание

В первом наборе входных данных, поскольку все элементы $$$b$$$ равны $$$1$$$, любая из $$$5!$$$ перестановок приводит к $$$b' = (1, 1, 1, 1, 1)$$$. Таким образом, $$$c = (1, 14, 5, 1, 4)$$$ в любой ситуации. Инверсии: $$$(2, 3), (2, 4), (2, 5), (3, 4)$$$ и $$$(3, 5)$$$. Ожидаемое количество инверсий равно $$$5 \equiv 5 \pmod{998\,244\,353}$$$.

Во втором наборе входных данных существует $$$3! = 6$$$ равновероятных перестановок $$$b'$$$. Результирующие массивы $$$c$$$ и соответствующее количество инверсий приведены ниже:

$$$b'$$$$$$c = (3b'_1, 2b'_2, 5b'_3)$$$Количество инверсий
$$$(3, 2, 5)$$$$$$(9, 4, 25)$$$1
$$$(3, 5, 2)$$$$$$(9, 10, 10)$$$0
$$$(2, 3, 5)$$$$$$(6, 6, 25)$$$0
$$$(2, 5, 3)$$$$$$(6, 10, 15)$$$0
$$$(5, 3, 2)$$$$$$(15, 6, 10)$$$2
$$$(5, 2, 3)$$$$$$(15, 4, 15)$$$1

Ожидаемое количество инверсий равно $$$\frac{1+0+0+0+2+1}{6} = \frac{4}{6} = \frac{2}{3}$$$.

По модулю $$$998\,244\,353$$$ ответ равен $$$2 \cdot 3^{-1} \equiv 665\,496\,236 \pmod{998\,244\,353}$$$.