CF1207D.Number Of Permutations
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a sequence of n pairs of integers: (a1,b1),(a2,b2),…,(an,bn) . 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 p1,p2,…,pn consisting of n distinct integers from 1 to n ( 1≤pi≤n ). If you apply permutation p1,p2,…,pn to the sequence s1,s2,…,sn you get the sequence sp1,sp2,…,spn . 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≤n≤3⋅105 ).
The next n lines contains description of sequence s . The i -th line contains two integers ai and bi ( 1≤ai,bi≤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
说明/提示
In first test case there are six permutations of size 3 :
- if p=[1,2,3] , then s=[(1,1),(2,2),(3,1)] — bad sequence (sorted by first elements);
- if p=[1,3,2] , then s=[(1,1),(3,1),(2,2)] — bad sequence (sorted by second elements);
- if p=[2,1,3] , then s=[(2,2),(1,1),(3,1)] — good sequence;
- if p=[2,3,1] , then s=[(2,2),(3,1),(1,1)] — good sequence;
- if p=[3,1,2] , then s=[(3,1),(1,1),(2,2)] — bad sequence (sorted by second elements);
- if p=[3,2,1] , then s=[(3,1),(2,2),(1,1)] — good sequence.