运动会分数统计 问题描述 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w
时间: 2023-12-27 17:00:15 浏览: 57
女子项目。每个项目的得分规则为,取该项目所有学校的得分并从大到小排序,每个学校得分为该项目中排名在中间位置的得分。比如,某个项目有5个学校,得分分别为5、3、7、2、8,那么这个项目的得分就是3+5+7+2+8=25。请你编程得到每个学校的总得分。
解题思路我们可以用一个大小为n*m的数组存放每个学校每个项目的分数。然后对于每一个项目,我们对每个学校的分数进行排序,取中间位置的得分,然后累加到该学校的总得分中。
```python
def calculate_score(n, m, w, scores):
total_scores = [0] * n
for i in range(m + w):
for j in range(n):
sorted_scores = sorted(scores[j][i])
mid = len(sorted_scores) // 2
total_scores[j] += sorted_scores[mid]
return total_scores
# 测试
n = 3
m = 2
w = 1
scores = [
[[5, 3, 7], [8, 6, 4], [9, 2, 1]],
[[4, 6, 5], [7, 9, 8], [2, 1, 3]]
]
print(calculate_score(n, m, w, scores))
```
以上是使用Python的一个示例代码,通过遍历每个项目的分数,对每个学校的分数进行排序,然后取中间位置的得分并累加到每个学校的总得分中,最终返回每个学校的总得分。