STEP #1

(1/2)

此处切换ai服务商,可对比多家ai的回复,取最优解。

上一步下一步关闭
酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

# [ROIR 2016 Day 1] 奖品 ## 题目背景 翻译自 [ROIR 2016 D1T1](https://neerc.ifmo.ru/school/archive/2015-2016/ru-olymp-regional-2016-day1.pdf)。 ## 题目描述 Petya 参加了一个比赛,在这个比赛中将会抽取 $n$ 个奖品。奖品编号从 $1$ 到 $n$。 根据比赛结果,参赛者可以获得 $2$ 到 $n$ 之间的分数。如果参赛者获得了 $k$ 分,那么他将从编号 $1$ 到 $k$ 的奖品中获得一个奖品。比赛主持人在参赛者选择奖品之前,会从奖品列表中删除一个奖品。然后,参赛者可以从剩下的 $k - 1$ 个奖品中选择一个。 Petya 知道所有奖品的价值,第 $i$ 个奖品的价值为 $a_i$。 对于每个 $2\le k\le n$,你需要求出如果 Petya 获得了 $k$ 分,他一定能得到的最大奖品价值是多少。 ## 输入格式 第一行输入一个整数 $n$($2 \le n \le 100000$)。 第二行输入 $n$ 个整数 $a_1,a

## 代码实现 ```python # 读取输入数据 n = int(input()) a_values = list(map(int, input().split())) # 初始化结果列表 result = [0] * (n - 1) # 计算每个分数下能得到的最大奖品价值 for k in range(2, n + 1): max_value = -1 for i in range(k - 1): max_value = max(max_value, a_values[i]) result[k - 2] = max_value # 输出结果 print(*result) ``` ## 额外需要注意的逻辑点 1. 初始化结果列表长度为 `n - 1`,索引值与分数对应。 2. 遍历每个分数下可能获得的最大奖品价值时,用 `max()` 函数找出当前分数范围内的最大奖品价值。 3. 确保正确地输出最终结果,以空格分隔每个整数。 [2025-01-10 11:15:31 | AI写代码神器 | 389点数解答]

相关提问