B. 张老师的中位数价值

    Type: Default File IO: middle 1000ms 512MiB

张老师的中位数价值

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

一个序列的中位数的定义为:将这个序列 从小到大 排序后,位于中间位置的数就是中位数,有以下两种情况:

  • 当序列包含 奇数 个数字时候,中间的那个数字 即为中位数,例如 [1,2,3,4,5][1,2,3,4,5] 的中位数是 33
  • 当序列包含 偶数 个数字时候,中间两个数字的平均值(向下取整) 即为中位数,例如 [1,2,3,4,5,6][1,2,3,4,5,6] 的中位数是 (3+4)/2=3(3+4)/2=3

现在张老师给定了一个长度为 nn 的序列,分别为 a1,a2,a3…ana_1,a_2,a_3 \dots a_n

特别的,本题中 aa 序列的每个元素只会是 00 或 11。

张老师希望将这个序列进行分割,分割成若干连续的区间(长度至少为 11)

而一种分割方案的价值为分割出所有区间的中位数之和

张老师想知道在所有不同的方案中,最小价值和最大价值分别是多少?

输入格式

本题包含多组测试数据

输入第一行包含一个整数 TT 表示有 TT 组测试数据

对于每组测试数据:

第一行一个整数 nn 表示序列长度

第二行包含 nn 个整数,a1,a2,a3…ana_1,a_2,a_3 \dots a_n

输出格式

对于每组测试数据,输出一行包含两个整数,分别表示最小价值和最大价值,中间用空格隔开

样例 1

2
3
0 1 1
4
0 1 0 1
1 2
0 2

样例解释

对于第一组数据共有 44 种划分方法:

  1. [0], [1], [1],此时的中位数分别为:0,1,10, 1, 1,数组的价值为 0+1+1=20 + 1 + 1 = 2
  2. [0, 1], [1],此时的中位数分别为:(0+1)/2=0,1(0+1)/2=0, 1,数组的价值为 0+1=10 + 1 = 1;
  3. [0], [1, 1],此时的中位数分别为:0,(1+1)/2=10, (1+1)/2=1,数组的价值为 0+1=10 + 1 = 1;
  4. [0, 1, 1],此时的中位数是 11,数组的价值为 11。

其中最小价值为 11,最大价值为 22

数据范围

测试点 TT nn 特殊性质
1∼61 \sim 6 =1= 1 ≤10\leq 10 无
7∼87 \sim 8 =10= 10
99 ≤1000\leq 1000 ai=0a_i=0
1010 ai=1a_i=1
1111 aa 序列单调不降
1212 aa 序列单调不升
1313 奇数项为 00,偶数项为 11
1414 奇数项为 11,偶数项为 00
15∼2015 \sim 20 无

特别的,对于所有数据满足: aa 序列仅包含 00 和 11

CSP-J 模拟赛

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2026-10-18 9:00
End at
2026-10-18 16:00
Duration
7 hour(s)
Host
Partic.
7