问题2425--斯大林排序

2425: 斯大林排序

时间限制: 1 Sec  内存限制: 128 MB
提交: 3  解决: 1
[提交] [状态] [讨论版] [命题人:]

题目描述

本题由  XiaoZhi  提供


斯大林排序是最近网络上比较流行的“排序”算法
它使序列有序的核心是:在遇到无法形成有序序列的元素时,就剔除它
详细地,在从头向后检查序列时,若遇到非有序序列时,将其删除,这样最后剩下的元素构成的序列一定是有序序列
现在你要编写一个程序,实现斯大林算法,并输出排序后所有元素总和sum以及排序后序列的元素数量count


提示:
1.序列不要求严格单调
2.取模结果为负数时,需要将模数与结果的绝对值做差

输入

共有T组测试数据
第一行一个整数T


对于每组测试数据T:
两行
第一行一个整数0或1,0表示升序排列,1表示降序排列
第二行n个整数(n未知),表示原序列元素,每个数中间用空格隔开

输出

共T行
每行两个整数sum和count,用空格隔开,sum表示排序后所有元素总和,count表示排序后序列的元素数量
注意:由于sum的结果可能很大,所以输出时需要对998244353取模

样例输入 Copy

2
0
5 3 6 4 5 9
1
3 4 4 1 1 2

样例输出 Copy

20 3
5 3

提示

对于100%的数据:
原序列所有数据均在int范围内
原序列元素数量0<n<1e5
1<=T<=10


简易数据点:
   原序列所有元素均在short范围内
   原序列元素数量<200

特殊数据点:
   原序列所有元素相等
   原序列所有元素绝对值不小于1e8

来源/分类