CF BUDDY
← Problems·

1913D · Array Collapse

2100 · data structures, divide and conquer, dp

Problem: You are given an array [p1,p2,,pn][p_1, p_2, \dots, p_n], where all elements are distinct.

You can perform several (possibly zero) operations with it. In one operation, you can choose a contiguous subsegment of pp and remove all elements from that subsegment, except for the minimum element on that subsegment. For example, if p=[3,1,4,7,5,2,6]p = [3, 1, 4, 7, 5, 2, 6] and you choose the subsegment from the 33-rd element to the 66-th element, the resulting array is [3,1,2,6][3, 1, 2, 6].

An array aa is called reachable if it can be obtained from pp using several (maybe zero) aforementioned operations. Calculate the number of reachable arrays, and print it modulo 998244353998244353.

Input Format: The first line of the input contains one integer tt (1t1041 \le t \le 10^4) — the number of test cases.

Each test case consists of two lines. The first line contains one integer nn (1n31051 \le n \le 3 \cdot 10^5). The second line contains nn distinct integers p1,p2,,pnp_1, p_2, \dots, p_n (1pi1091 \le p_i \le 10^9).

Additional constraint on the input: the sum of nn over all test cases does not exceed 31053 \cdot 10^5.

Output Format: For each test case, print one integer — the number of reachable arrays, taken modulo 998244353998244353.

Sample Cases

Case 1

Input

3
2
2 1
4
2 4 1 3
5
10 2 6 3 4

Output

2
6
12

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback