对于递增和递减的两种数列分别计算出 $f_i, g_i$ 表示选 $i$ 个对应种类的数列中的数得到的最大总和。最后暴力合并即可求出答案。
对于递减的部分,显然只需要对所有数一起排序取前缀和即可。
对于递增的部分,注意到若有两个数列都选了一部分,那么肯定能通过调整得到更优的方案,所以一定是选择了若干个完整的数列以及一个数列的前缀。将所有数列按照总和从大到小排序,则选择一部分的数列确定之后,剩下的数列总是选一个前缀。通过维护一些前后缀最值信息即可做到线性求答案。
总时间复杂度为 $\mathcal{O}(nm)$。