G. Задача о перестановках
ограничение по времени на тест
0.5 секунд
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рассмотрим следующую задачу. Вам дан набор из $$$n$$$ пар положительных элементов: $$$(a_1, b_1)$$$, $$$(a_2, b_2)$$$, $$$(a_3, b_3)$$$, ..., $$$(a_n, b_n)$$$. Выберем из каждой пары одно число: $$$c_i = a_i$$$ или $$$c_i = b_i$$$ для каждого $$$1 \le i \le n$$$. Назовем задачу решаемой, если можно выбрать последовательность $$$c$$$ такую, что она будет строго возрастать, то есть $$$c_1 \lt c_2 \lt ... \lt c_n$$$. Для заданной последовательности пар посчитайте, сколько их перестановок из $$$n!$$$ будут приводить к решаемой задаче.

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

В первой строке вам дано число $$$1 \le n \le 20$$$. В следующих $$$n$$$ строках вам даны пары, по одной паре $$$1 \le a_i, b_i \le 10^9$$$ в каждой строке.

Система оценки
  • Подзадача 1 (10 баллов): для любого $$$1 \le i \le n$$$ $$$a_i = b_i$$$;
  • Подзадача 2 (15 баллов): для любого $$$1 \le i \le n$$$ $$$|a_i - b_i| \le 1$$$, необходимые подзадачи – 1.
  • Подзадача 3 (25 баллов): $$$1 \le n \le 10$$$
  • Подзадача 4 (30 баллов): $$$1 \le n \le 16$$$, необходимые подзадачи – 3
  • Подзадача 5 (20 баллов): без дополнительных ограничений, необходимые подзадачи – 1, 2, 3, 4
Примеры
Входные данные
3
3 4
1 5
6 2
Выходные данные
4
Входные данные
4
1 3
1 3
5 10
5 10
Выходные данные
4