#TGUCPC1007. 简单的贡献最大问题

简单的贡献最大问题

题目描述

RT,现在有一个简单的贡献最大问题。

小Y作为一个算法爱好者。现在和小S在玩一个游戏.这个游戏的具体内容是这样的:

给你一个nn个数的序列,分别为a1,a2,...,an1,ana_1,a_2,...,a_{n-1},a_n,保证ai[2,2]a_i\in[-2,2]

你能对该序列进行两次操作。

操作1:删除该序列的前LL个数字(必须按顺序删除)。注意,L可以为0

操作2:删除该序列的后RR个数字(必须按顺序删除)。注意,R可以为0

如果小Y操作后的序列的数字的乘积大于等于小S操作后的序列的数字的乘积,那么小Y就能获得本次游戏的胜利。

因为小S很聪明,所以小Y只有保证自己的答案最大才放心,那么小Y该如何操作呢?

特殊的,对于空数组来说,我们定义它的值为11

输入格式

本题为多组输入,第一行输入一个TT,表示有TT组数据。

接下来TT组数据,每组数据第一行,输入一个数nn,表示有nn个数。

接下来一行输入nn个数字,表示aia_i

数据保证,T[1,50],n[1,2×105],ai[2,2]T\in[1,50],n\in[1,2 \times 10^5],a_i\in[-2,2]

输出格式

输出TT行,对于每一组数据,输出对应的最大值,因为最大值可能很大,所以你需要将最终答案对998244353998244353取模后再输出。

每组数据输出完之后需换行。

样例:

5
4
1 2 -1 2
3
1 1 -2
5
2 0 -2 2 -1
3
-2 -1 -1
3
-1 -2 -2
2
1
4
2
4