AlgoMooc
← 返回题库

K0041. 占星秘术

中等通过率 68% · 提交 60 · 通过 41
枚举排序数学

在魔法大陆 阿瓦隆,小慕偶然发现了一卷古老的 占星秘术。据说,秘术需要通过一串神秘数字计算出“星辰之力”才能解开命运的奥秘。 小慕正受困于一场混沌风暴,他唯一的希望就是通过秘术计算“星辰之力”的总和,以此施放大封印术来平息风暴。作为他的 占星助手,你需要帮助他完成这一计算。 秘术的核心在于 子列表的之和。具体而言,给定一个长度为 `n` 的整数序列,要求计算它的所有 的 中位数 之和。 中位数的定义: - 如果子列表长度为奇数,则中位数是排序后的中间元素。 - 如果子列表长度为偶数,则取排序后靠左的那个中间元素(即 `floor((k+1)/2)` 位置的元素,基于 1 索引)。

提示:带虚线的词点一下有通俗解释。

输入描述

输入包含两部分: - 第一行包含一个整数 `n` (1 <= `n` <= 100),表示数列的长度。 - 第二行包含 `n` 个整数 `a_1, a_2, ..., a_n` (-10^3 <= `a_i` <= 10^3),表示魔法数列。

输出描述

输出一个整数,表示所有 **连续子列表的中位数之和**。

示例

示例 1

输入

4
1 7 5 4

输出

41

说明:长度为 1 的子列表:[1], [7], [5], [4] -> 中位数之和 = 1 + 7 + 5 + 4 = 17 长度为 2 的子列表:[1,7], [7,5], [5,4] -> 排序后中位数分别为 1, 5, 4 -> 1 + 5 + 4 = 10 长度为 3 的子列表:[1,7,5], [7,5,4] -> 排序后中位数分别为 5, 5 -> 5 + 5 = 10 长度为 4 的子列表:[1,7,5,4] -> 排序后中位数为 4 最终和 = 17 + 10 + 10 + 4 = 41

示例 2

输入

4
1 2 3 10

输出

29

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。