Universal Cup Judging System

Universal Cup

Time Limit: 1.5 s Memory Limit: 1024 MB Total points: 100 Hackable ✓
Statistics

Yana、Mino、White 同 Huzz 係最好嘅朋友。

終於完成咗教練嚴苛嘅任務之後,Huzz 贏得咗休息嘅機會。喺一個慵懶嘅下晝,世界彷彿慢咗落嚟,籠罩喺黃昏將至嗰陣溫暖嘅金色薄霧入面。微風輕拂,只係吹動咗穿過大橡樹葉嘅陽光入面翩翩起舞嘅微塵。

喺呢個令人昏昏欲睡、舒適嘅空閒入面,Huzz 喺佢軟綿綿嘅鯊魚公仔入面發現咗一個排列。佢決定同朋友分享呢個排列嚟搵啲樂趣。

Mino 鍾意拆分。佢可以將呢個排列拆分成若干個連續段。

Yana 鍾意交換。佢可以揀一個連續段,並交換入面嘅最大值同最小值。

具體嚟講,佢哋可以按任意順序、進行任意多次以下兩種操作:

  • 拆分(split):揀一個長度大過 $1$ 嘅連續段。然後喺佢內部揀一個位置,將佢拆分成兩個相鄰嘅連續段。例如,$(a_i, \dots, a_j)$ 可以被拆分成 $(a_i, \dots, a_k)$ 同 $(a_{k+1}, \dots, a_j)$,其中 $i \le k < j$。
  • 交換(swap):揀一個連續段,並交換入面嘅最大值同最小值。

喺進行咗任意多次操作之後,佢哋停止操作,並將所有得到嘅連續段按原本嘅順序合併,從而形成一個新嘅排列。

White 鍾意計數。佢想知道——佢哋總共可以得到幾多個唔同嘅排列?

由於結果可能非常大,你只需要求出答案對 $998\,244\,353$ 取模之後嘅結果。

輸入格式

輸入嘅第一行包含一個整數 $n$($1 \le n \le 500$),代表排列嘅長度。

第二行包含 $n$ 個整數 $a_1, a_2, \cdots, a_n$($1 \le a_i \le n$),代表排列本身。保證 $\{a_n\}$ 係一個排列。

輸出格式

輸出一個整數,代表佢哋可以得到嘅唔同排列嘅數量對 $998\,244\,353$ 取模之後嘅結果。

範例

輸入

4
1 4 2 3

輸出

10

輸入

7
5 1 4 2 6 3 7

輸出

340

提示

喺第一個範例入面,以下係佢哋可以得到嘅所有可能排列:

$(1234), (1243), (1423), (1432), (4123), (4132), (4213), (4231), (4312), (4321)$

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.