每天挤奶时,约翰的N 头奶牛(1≤N≤50,000)都以相同的顺序排队。他挑选一系列连续的奶牛来玩游 戏。为了让所有奶牛都玩得开心,它们的高度差异不应太大。约翰列出 了 Q 组 ( 1≤Q ≤200,000 奶 牛 和 它 们 的 高 度 (1≤height≤1,000,000)。他希望确定每个小组中最高和最矮的奶牛之间的高度差异。 输入 第1行包含两个整数N 和Q 。接下来N 行,每行都包含一 个整数,表示奶牛的高度。最后Q 行,每行都包含两个整数A 和B (1≤A ≤B ≤N ),代表从A 到B 的奶牛范围。 输出 输出Q 行,每行都包含一个整数,表示该范围内最高和 最矮奶牛的高度差。
时间: 2024-04-17 22:23:15 浏览: 161
n 人有限非合作博弈计算一个纳什均衡.rar_Nash-Equilibrium_nash_n人博弈_tip9qr_博弈纳什均衡
5星 · 资源好评率100%
以下是一个解决该问题的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int N, Q;
cin >> N >> Q;
vector<int> heights(N);
for (int i = 0; i < N; i++) {
cin >> heights[i];
}
while (Q--) {
int A, B;
cin >> A >> B;
// 找出范围内的最大值和最小值
int maxVal = *max_element(heights.begin() + A - 1, heights.begin() + B);
int minVal = *min_element(heights.begin() + A - 1, heights.begin() + B);
// 输出最大值和最小值之差
cout << maxVal - minVal << endl;
}
return 0;
}
```
该代码首先读取输入的奶牛数量N和查询数量Q。然后,通过循环读取每头奶牛的高度,并将其存储在一个vector中。接下来,通过循环处理每个查询,读取查询的起始和结束位置A和B,然后使用`max_element`和`min_element`函数找到范围内的最大值和最小值。最后,输出最大值和最小值之差。
请注意,该代码假设输入范围是合法的,即1 ≤ A ≤ B ≤ N。在实际应用中,可能需要根据具体情况进行边界检查和错误处理。
阅读全文