P24646 [AtCoder] Inversion Squared
NOI
题目描述

Problem Statement

You are given $a sequence A = (A_1,\ldots,A_N)$ of length N. Each element of A is either -1 or an integer between 1 and N, and each integer from 1 to N is contained at most once.
$A permutation P=(P_1,\ldots,P_N)$ of $(1,\ldots,N)$ is called a good permutation if and only if it satisfies $A_i \neq -1 \Rightarrow P_i = A_i.$ Find the sum of the squares of the inversion numbers of all good permutations, modulo 998244353.
The inversion number of a permutation P is the number of pairs of integers (i,j) such that $1\leq i < j \leq N$ and P_i > P_j.

Input

Input is given from Standard Input in the following format:
N
$A_1 \ldots A_N$

Output

Print the answer.

Constraints

  • $1\leq N\leq 3000$
  • A_i = -1 or $1\leq A_i \leq N$.
  • Each integer from 1 to N is contained at most once in A.
  • All input values are integers.

Sample Input 1

4
3 -1 2 -1

Sample Output 1

29

There are two good permutations: P=(3,1,2,4) and P=(3,4,2,1), with inversion numbers 2 and 5, respectively.
Thus, the answer is 2^2 + 5^2 = 29.

Sample Input 2

10
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1

Sample Output 2

952235647

Sample Input 3

15
-1 -1 10 -1 -1 -1 2 -1 -1 3 -1 -1 -1 -1 1

Sample Output 3

460544744

Find the sum modulo 998244353.

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
4 3 -1 2 -1
样例输出
29