根据同学成绩和排序规则计算最少奖励铅笔数的 Python 实现
以下是使用 Python 实现的代码: ```python # 获取输入的同学数量 n = int(input()) # 获取输入的同学成绩,并将其转换为整数列表 scores = list(map(int, input().split(','))) # 初始化每个同学的铅笔数为 1 pencils = [1] * n # 从左到右遍历,保证成绩高的同学比左边成绩低的同学铅笔数多 for i in range(1, n): if scores[i] > scores[i - 1]: pencils[i] = pencils[i - 1] + 1 # 从右到左遍历,保证成绩高的同学比右边成绩低的同学铅笔数多 for i in range(n - 2, -1, -1): if scores[i] > scores[i + 1]: # 如果当前同学已经根据从左到右的规则分配了更多铅笔,保持不变 pencils[i] = max(pencils[i], pencils[i + 1] + 1) # 计算最少需要的铅笔总数 total_pencils = sum(pencils) # 输出结果 print(total_pencils) ``` ######[AI问答 | 286点数解答 | 2026-02-28 12:33:09]
相关提问
- 深入解析洛谷打卡系统:规则揭秘与代码实现(字节豆包 | 316点数解答 | 2025-11-16 19:45:59)81
- C 语言:快速实现 5 个学生信息录入、按成绩升序排序并输出!(字节豆包 | 373点数解答 | 2024-10-30 00:37:20)403
- C语言实现:输入5名学生信息并按成绩升序排序输出(字节豆包 | 354点数解答 | 2024-10-30 18:45:58)345
- C语言:输入5个学生信息,按成绩升序排序并输出(字节豆包 | 373点数解答 | 2024-10-31 19:49:58)339
- C语言:输入5名学生信息并按成绩升序排序输出(字节豆包 | 326点数解答 | 2025-01-01 20:11:47)330
- 成绩等级统计:20个60 - 100分成绩的等级数量揭秘(字节豆包 | 219点数解答 | 2025-04-09 10:20:32)212
- 培训机构学员成绩与年龄更新:C++ 代码实现(DeepSeek | 186点数解答 | 2025-12-16 18:04:31)50
- Python 处理培训机构学员培训后年龄与 NOIP 成绩提升情况(DeepSeek | 73点数解答 | 2025-12-16 18:05:20)53
- 培训机构学员成绩提升:C++代码实现年龄与NOIP成绩更新(DeepSeek | 178点数解答 | 2025-12-31 12:20:24)50
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)445
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)331
- 文具王国跑步赛:橡皮为何成最慢“选手”?原因超搞笑!(字节豆包 | 39点数解答 | 2025-06-10 10:02:25)102