题库练习 Number Of Permutations
← 上一题 下一题 →

A12807 | Number Of Permutations

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

You are given a sequence of $n$ pairs of integers: $(a_1, b_1), (a_2, b_2), \dots , (a_n, b_n)$ . This sequence is called bad if it is sorted in non-descending order by first elements or if it is sorted in non-descending order by second elements. Otherwise the sequence is good. There are examples of good and bad sequences:

- $s = [(1, 2), (3, 2), (3, 1)]$ is bad because the sequence of first elements is sorted: $[1, 3, 3]$ ;
- $s = [(1, 2), (3, 2), (1, 2)]$ is bad because the sequence of second elements is sorted: $[2, 2, 2]$ ;
- $s = [(1, 1), (2, 2), (3, 3)]$ is bad because both sequences (the sequence of first elements and the sequence of second elements) are sorted;
- $s = [(1, 3), (3, 3), (2, 2)]$ is good because neither the sequence of first elements $([1, 3, 2])$ nor the sequence of second elements $([3, 3, 2])$ is sorted.

Calculate the number of permutations of size $n$ such that after applying this permutation to the sequence $s$ it turns into a good sequence.

A permutation $p$ of size $n$ is a sequence $p_1, p_2, \dots , p_n$ consisting of $n$ distinct integers from $1$ to $n$ ( $1 \le p_i \le n$ ). If you apply permutation $p_1, p_2, \dots , p_n$ to the sequence $s_1, s_2, \dots , s_n$ you get the sequence $s_{p_1}, s_{p_2}, \dots , s_{p_n}$ . For example, if $s = [(1, 2), (1, 3), (2, 3)]$ and $p = [2, 3, 1]$ then $s$ turns into $[(1, 3), (2, 3), (1, 2)]$ .

输入格式

The first line contains one integer $n$ ( $1 \le n \le 3 \cdot 10^5$ ).

The next $n$ lines contains description of sequence $s$ . The $i$ -th line contains two integers $a_i$ and $b_i$ ( $1 \le a_i, b_i \le n$ ) — the first and second elements of $i$ -th pair in the sequence.

The sequence $s$ may contain equal elements.

输出格式

Print the number of permutations of size $n$ such that after applying this permutation to the sequence $s$ it turns into a good sequence. Print the answer modulo $998244353$ (a prime number).

输入输出样例

输入 #1
3
1 1
2 2
3 1
输出 #1
3
输入 #2
4
2 3
2 2
2 1
2 4
输出 #2
0
输入 #3
3
1 1
1 1
2 3
输出 #3
4
C++ 编辑器
输入
输出