M - Deque and Inversions Editorial

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 600600

問題文

正の整数 NN が与えられます。Natsubi くんは、空の数列 QQ を用意したうえで、(1,2,,N)(1,2,\dots,N) を並び替えた数列 P=(P1,P2,,PN)P=(P_1, P_2, \dots, P_N) を自由に選んで、以下の一連の操作を NN 回行います。

  1. PP の先頭の要素を xx として、QQ の先頭または末尾に xx を追加する。
  2. PP から xx を削除する。

Natsubi くんは、最終的な QQ の転倒数が最小となるように適切に操作を行います。

PP として考えられるものは N!N! 通りありますが、それらすべてについて操作後の QQ の転倒数の最小値を求め、その総和を 998244353998244353 で割ったあまりを出力してください。

転倒数とは?

(1,2,,N)(1,2,\dots,N) を並び替えた数列 P=(P1,P2,,PN)P'=(P'_1, P'_2, \dots, P'_N) に対する転倒数は、1i<jN1 \leq i < j \leq N なる整数 i,ji,j の組であって、Pi>PjP'_i > P'_j を満たすものの個数のことを指します。

制約

  • 1N3×1051 \leq N \leq 3 \times 10^5
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN

出力

答えを 11 行に出力せよ。


入力例 1Copy

Copy
4

出力例 1Copy

Copy
20

例えば、P=(3,2,1,4)P=(3,2,1,4) のとき、適切に操作を行うことで Q=(1,2,3,4)Q=(1,2,3,4) とすることができ、転倒数は 00 となります。

他の PP についても同様に計算すると、答えは 2020 であることが分かります。


入力例 2Copy

Copy
220328

出力例 2Copy

Copy
192799865

原案: NatsubiSogan



2025-04-15 (Tue)
20:13:20 +00:00