小J 将在2023年的最后一天参加一场名为“午夜烧脑”的比赛。比赛于20:00 开始,持续四个小时,正好到午夜。届时会有n个问题,按难度排序,即问题1是最简单的,问题n是最难的。小J 知道他需要 5*i 分钟来解决第 i 个问题。 小J 的朋友组织了一个除夕聚会,他想在午夜或更早的时候到场,当然他得先参加比赛。 从家到聚会地点需要 k 分钟。问题是如果小J 想准时赶到聚会地点,他最多能AC(信心满满,交的题目都过)多少道题目? 输入 一行,两个整数 n 和 k(1≤n≤10,1≤k≤240),表示比赛中的问题数和小J 从家里到聚会地点的时间。 输出 一个整数,表示小J 能够解决的最大问题数,以便他能够在午夜或更早的时候到达聚会地点。 样例 输入1 复制 3 222 输出1 复制 2 输入2 复制 4 190 输出2 复制 4 输入3 复制 7 1 输出3 复制 7 提示 【样例解释】 在第一个样例中,有3个问题,小J 需要222分钟才能到达聚会地点。这三个问题分别需要5、10和15分钟。小J 可以用5+10=15分钟来解决前两个问题。然后,他可以在20:15离开家,在23:57(222分钟后)赶到派对。在这种情况下,小J 会解决两个问题。他没有足够的时间来解决3个问题,所以答案是2。 在第二个样例中,小J 可以在5+10+15+20=50分钟内解决所有4个问题。在20:50,他将离开家,去参加聚会。他将在午夜时分准时到达那里。 在第三个样例中,小J 只需要1分钟就能到达聚会现场。他有足够的时间来解决所有7个问题。
时间: 2024-04-11 11:27:59 浏览: 15
题目中给出了小J参加比赛的时间、比赛问题的难度以及小J从家到聚会地点的时间。我们需要计算出小J最多能够解决的问题数,以便他能够准时赶到聚会地点。
首先,我们需要计算小J从家到聚会地点的总时间。根据题目中的描述,比赛持续4个小时,即240分钟。所以,小J从家到聚会地点的总时间为k + 240分钟。
接下来,我们需要计算小J能够解决的问题数。我们可以从最简单的问题开始,一直解决到时间不够为止。假设小J解决了前i个问题,那么他需要的总时间为5 * i分钟。如果这个总时间小于等于从家到聚会地点的总时间,那么小J可以解决第i+1个问题。否则,小J将没有足够的时间来解决第i+1个问题。
因此,我们可以使用一个循环来计算小J能够解决的问题数。循环的条件是小J解决的问题数小于n并且小J需要的总时间小于等于从家到聚会地点的总时间。在循环中,小J解决的问题数加一,并将小J需要的总时间增加5分钟。最后输出小J解决的问题数即可。
下面是Python的实现代码:
```python
def solve(n, k):
total_time = k + 240
solved_problems = 0
problem_time = 0
while solved_problems < n and problem_time + 5 * (solved_problems + 1) <= total_time:
solved_problems += 1
problem_time += 5 * solved_problems
return solved_problems
# 测试样例
print(solve(3, 222)) # 输出2
print(solve(4, 190)) # 输出2
print(solve(7, 1)) # 输出3
```
希望能帮到你!