AT_arc128_f [ARC128F] Game against Robot

Description

[problemUrl]: https://atcoder.jp/contests/arc128/tasks/arc128_f $ 1 $ から $ N $ までの番号のついた $ N $ 枚のカードがあり,カード $ i $ には整数 $ A_i $ が書かれています. なお,$ N $ は偶数です. すぬけくんとロボットがゲームをします. ゲームは,以下のように進行します. - ゲームマスターが $ (1,2,\cdots,N) $ の順列 $ (p_1,p_2,\cdots,p_N) $ を宣言する. この順列はすぬけくんとロボット両方に知らされる. - その後,すぬけくんからはじめて,両者が交互に手番をプレイする. 各手番では以下のことが起こる. - すぬけくんの手番: 残っているカードの中から好きなものを一つ選び,食べる. - ロボットの手番: 残っているカードのうち,$ p_i $ が最大となるカード $ i $ を選び,燃やす. - カードがなくなったらゲームは終了する. 最終的なゲームのスコアは,すぬけくんが食べたカードに書かれた整数の総和です. すぬけくんは,ゲームのスコアを最大化するように最適な行動をします. 順列 $ p $ は $ N! $ 通り考えられますが,これらすべてについてゲームのスコアを求め,その総和を $ 998244353 $ で割った余りを求めてください.

Input Format

入力は以下の形式で標準入力から与えられる. > $ N $ $ A_1 $ $ A_2 $ $ \cdots $ $ A_N $

Output Format

答えを出力せよ.

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 10^6 $ - $ N $ は偶数 - $ 1\ \leq\ A_i\ \leq\ 10^9 $ - 入力される値はすべて整数である ### Sample Explanation 1 順列 $ p $ に依らず,すぬけくんはカード $ 2 $ を食べます. ### Sample Explanation 2 例えば $ p=(3,1,4,2) $ であるとき,ゲームは以下のように進行します. - すぬけくんがカード $ 3 $ を食べる. - ロボットがカード $ 1 $ を燃やす. - すぬけくんがカード $ 4 $ を食べる. - ロボットがカード $ 2 $ を燃やす. このとき,ゲームのスコアは $ 1010000 $ になります.