问题 A: 电子带负电

内存限制:263 MB 时间限制:4 S
题面:传统 评测方式:文本比较 上传者:
提交:3 通过:3

题目描述


2025/7/27 经过激烈的讨论,我们认为电子应当带负电。因此,给此题中的序列添加 负数 的提案被严肃驳回,因为这些负号被电子夺走了。电子好闪,拜谢电子!

给定一个长度为 nn 的 非负整数 序列 a1,a2,a3,⋯,ana1,a2,a3,,an

定义函数 f (l,r,L,R)f (l,r,L,R),其中 l,r,L,Rl,r,L,R 均为整数,1≤l≤r≤n1lrn−n≤L≤R≤nnLRn。其值根据以下方法得到:

  1. 将所有满足 l≤i≤rlirii 是整数)且 L≤ai≤RLaiR 的 aiai 依照它们在 a1,a2,a3,⋯,ana1,a2,a3,,an 中的顺序取出,组成一个新序列 b1,b2,b3,⋯,bxb1,b2,b3,,bx,其中 xx 为新序列的长度。
  2. 若 x>0x>0,则 f (l,r,L,R)f (l,r,L,R) 的值为 bb 的最大子段和,否则 f (l,r,L,R)=−∞f (l,r,L,R)=

求出函数 ff 的最大值。同时求出达到这个最大值的不同函数参数的组数对 998244353998244353 取模后的值。


输入格式

本题包含多组测试数据。

来自电子的温馨提示:本题输入输出量较大,对于使用 C++ 语言参加竞赛的选手,强烈建议使用关闭同步流的 cin 和 cout 完成输入输出。

首先在第一行输入一个整数 TT1≤T≤101T10)表示测试数据组数。

对于每一组测试数据,输入包含两行。

第一行包含一个整数 nn1≤n≤2×1051n2×105)表示序列的长度。

第二行包含 nn 个整数 a1,a2,a3,⋯,ana1,a2,a3,,an0≤a1,a2,a3,⋯,an≤n0a1,a2,a3,,ann)表示序列的元素。


输出格式

对于每一组测试数据,输出包含一行两个整数表示函数的最大值和达到它的不同函数参数组数对 998244353998244353 取模后的值。

注意:输出函数最大值时不应当进行取模。对于每一组测试数据,可以证明函数 ff 的最大值均为非负整数。


输入样例 复制

2
3
0 2 1
5
0 0 0 0 0

输出样例 复制

3 20
0 540

数据范围与提示

在样例的第一组测试数据中,最大值为 33。满足 l≤2l2r=3r=3L≤1L1R≥2R2 的函数参数均可达到最大值,结合函数的定义域可得组数为 2×1×5×2=202×1×5×2=20

在样例的第二组测试数据中,最大值为 00。满足 L≤0L0R≥0R0 的函数参数均可达到最大值,结合函数的定义域可得组数为 15×6×6=54015×6×6=540


分类标签