用c++:共有n名学生的语文成绩要登记,目前登记的成绩是a[1],a[2],…,a[n]。但是语文老师lester写错了不少成绩,所以他要修改成绩的时候,总是累得不行。现在他要修改p次:每次修改行为由三个数字x,y,z表示,代表第x个到第y个学生每人增加z分。他总是要一遍遍地给某些同学增加分数,又要注意最低分是多少。你能帮帮他吗 输入输出格式 输入格式 第一行有两个正整数n和p(p<=n<=500000),代表学生数与加分次数 第二行有n个正整数,a[1],a[2],…a[n],代表各个学生的初始成绩(均不超过100) 接下来p行,每行有三个正整数,x,y,z,代表给第x个到第y个学生每人增加z分(x,y<=n, z<=100)。注意x可能大于y。 输出格式 输出一行,代表更改分数后,全班的最低分是几分。 输入输出样例 输入样例#1: 3 2 1 1 1 1 2 1 2 3 1 输出样例#1: 2 输入样例#2: 无 输出样例#2: 无 输入样例#3: 无 输出样例#3: 无
时间: 2024-04-11 10:31:01 浏览: 210
C++实现学生成绩统计管理系统
4星 · 用户满意度95%
好的,下面是使用C++编写的解决方案:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, p;
cin >> n >> p;
vector<int> scores(n);
for (int i = 0; i < n; i++) {
cin >> scores[i];
}
while (p--) {
int x, y, z;
cin >> x >> y >> z;
for (int i = x - 1; i < y; i++) {
scores[i] += z;
}
}
int minScore = scores[0];
for (int i = 1; i < n; i++) {
if (scores[i] < minScore) {
minScore = scores[i];
}
}
cout << minScore << endl;
return 0;
}
```
这段代码首先读取学生数量n和修改次数p。然后读取每个学生的初始分数,并根据修改次数逐个增加学生的分数。最后找到全班的最低分并输出。
希望这个解决方案能够帮到你!如果有任何疑问,请随时提出。
阅读全文