問題一覧 > 通常問題

No.3119 A Little Cheat

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 31
作問者 : Nzt3 / テスター : ponjuice kenken714 Naru820
0 ProblemId : 12094 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-04-18 00:29:11

問題文

長さ $N$ の正整数列 $A$ が与えられます。 長さ $N$ の整数列 $B$ について、スコア $f(B)$ は次のように定義されます。

  • 次の操作を $1$ 回以下行う
    • 整数 $i \ (1 \le i < N)$ を選択し、 $B_i$ と $B_{i+1}$ の値を交換する
  • 適切に操作をしたとき、 $A_i < B_i$ を満たす $i\ (1\le i \le N)$ の個数の最大値が $f(B)$ となる

全ての要素が $1$ 以上 $M$ 以下の長さ $N$ の整数列 $B$ として考えられるものは $M^N$ 通りありますが、それら全てについてスコア $f(B)$ を求め、その総和を $998244353$ で割ったあまりを求めてください。

制約

  • $2 \le N \le 2 \times 10^5$
  • $1 \le M \le 10^9$
  • $1 \le A_i \le M\ (1 \le i \le N)$
  • 入力はすべて整数

入力

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

$N$ $M$
$A_1$ $A_2$ $\ldots$ $A_N$ 

出力

答えを出力せよ。

サンプル

サンプル1
入力
3 4
1 2 3
出力
117

$B$ として考えられる数列は $4^3 = 64$ 通りあります。

$f([1,1,1])=0,f([1,2,1])=1$ などを計算することでスコアの総和が $117$ であることがわかります。

サンプル2
入力
9 10
9 9 8 2 4 4 3 5 3
出力
871841628
サンプル3
入力
10 100
82 28 26 33 15 28 21 56 32 48
出力
2025

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。