【问题描述】参加运动会有n个学校,学校编号为1~n。比赛分成m个男子项目和w个女子项目。项目编号为男子1~m和女子m+1~m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、
时间: 2023-05-01 07:03:09 浏览: 162
运动会分数计分系统(大一期末必备哦)
5星 · 资源好评率100%
题目描述:参加运动会有n个学校,学校编号为1~n。比赛分成m个男子项目和w个女子项目。项目编号为男子1~m和女子m+1~m+w。项目编码为男子1~m和女子m+1~m+w。不同的项目取前5名或前3名积分;取前5名的积分分别为7、5、3、2、1,取前3名的积分分别为5、3、2、1(即不同的项目取不同的积分)。请编程计算各学校的总成绩,输出总成绩最高的学校编号和总成绩值。
思路:使用两个数组mScore和wScore表示男子项目和女子项目的积分。然后遍历每个项目,计算每个学校的总积分,并记录总成绩最高的学校编号和总成绩值。
代码实现如下:
```python
n, m, w = map(int, input().split())
mScore = [7, 5, 3, 2, 1] * (m // 5) + [5, 3, 2, 1] * (m % 5)
wScore = [5, 3, 2, 1] * w + [0] * (m - m % 5)
maxScore, maxSchool = -1, -1
for i in range(n):
score = sum(int(x) for x in input().split()[1:])
score += sum(mScore[int(x)-1] for x in input().split()[1:])
score += sum(wScore[int(x)-1+m] for x in input().split()[1:])
if score > maxScore:
maxScore, maxSchool = score, i+1
print(maxSchool, maxScore)
```
注意:需要将输入的字符串转换为整数时要使用int(x)函数。
阅读全文