帮我用python写每天,农夫 John 的 n(1\le n\le 5\times 10^4)n(1≤n≤5×10 4 ) 头牛总是按同一序列排队。 有一天, John 决定让一些牛们玩一场飞盘比赛。他准备找一群在队列中位置连续的牛来进行比赛。但是为了避免水平悬殊,牛的身高不应该相差太大。John 准备了 q(1\le q\le 1.8\times10^5)q(1≤q≤1.8×10 5 ) 个可能的牛的选择和所有牛的身高 h_i(1\le h_i\le 10^6,1\le i\le n)h i (1≤h i ≤10 6 ,1≤i≤n)。他想知道每一组里面最高和最低的牛的身高差。第一行两个数 n,qn,q。 接下来 nn 行,每行一个数 h_ih i 。 再接下来 qq 行,每行两个整数 aa 和 bb,表示询问第 aa 头牛到第 bb 头牛里的最高和最低的牛的身高差。输出共 qq 行,对于每一组询问,输出每一组中最高和最低的牛的身高差。
时间: 2024-04-10 07:34:32 浏览: 71
使用python求斐波那契数列中第n个数的值示例代码
5星 · 资源好评率100%
以下是一个用Python编写的解决方案:
```python
def calculate_height_diff(n, q, heights, queries):
# 计算每一组询问中最高和最低的牛的身高差
results = []
for query in queries:
start, end = query[0], query[1]
max_height = max(heights[start-1:end])
min_height = min(heights[start-1:end])
height_diff = max_height - min_height
results.append(height_diff)
return results
# 读取输入
n, q = map(int, input().split())
heights = []
for _ in range(n):
heights.append(int(input()))
queries = []
for _ in range(q):
queries.append(list(map(int, input().split())))
# 计算并输出结果
results = calculate_height_diff(n, q, heights, queries)
for result in results:
print(result)
```
你可以将以上代码保存为一个Python文件,然后通过命令行输入数据,并查看输出结果。注意,输入数据需要按照题目要求的格式进行输入。
阅读全文