题目描述 邹锦舒很不舍,于是开始模拟起月亮的闪烁值。 月亮的初始闪烁值为 � x,周围一共有 � n 颗星星,第 � i 颗星星的闪烁值为 � � y i 。每一颗星星都会和月亮形成一个整体。换句话说,第 � i 个整体的闪烁值为 � + � � x+y i 。现在有三种可能: 月亮的闪烁值变为 � a。 把有着最大闪烁值的星星的闪烁值变成 � b。 把有着最小闪烁值的星星的闪烁值变成 � c。 请帮邹锦舒算出,每一次操作后,最大的整体闪烁值是多少。 输入格式 第一行两个整数 � n 和 � x,表示星星的总数和月亮的闪烁值。 第二行 � n 个整数,表示每一个星星的闪烁值。 第三行一个整数 � t,表示操作的总数。 接下来 � t 行,首先一个整数 � � op,表示操作的类型(即为上文的 1 1 或 2 2 或 3 3)。 然后是一个整数 � a 或 � b 或 � c,具体描述见上。 输出格式 � t 行,每行一个整数,表示一颗星星和月亮的总和的最大值。c++代码
时间: 2024-04-08 07:30:56 浏览: 103
s7-200plc模拟量求平均值程序.pdf
5星 · 资源好评率100%
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, x;
cin >> n >> x;
vector<int> starValues(n);
for (int i = 0; i < n; i++) {
cin >> starValues[i];
}
int t;
cin >> t;
int maxTotal = x;
for (int i = 0; i < t; i++) {
int op, val;
cin >> op >> val;
if (op == 1) {
x = val;
}
else if (op == 2) {
int maxStar = *max_element(starValues.begin(), starValues.end());
int maxIndex = max_element(starValues.begin(), starValues.end()) - starValues.begin();
starValues[maxIndex] = val;
}
else if (op == 3) {
int minStar = *min_element(starValues.begin(), starValues.end());
int minIndex = min_element(starValues.begin(), starValues.end()) - starValues.begin();
starValues[minIndex] = val;
}
maxTotal = x + *max_element(starValues.begin(), starValues.end());
cout << maxTotal << endl;
}
return 0;
}
```
阅读全文