题目背景
语文考试结束了,成绩还是一如既往地有问题。
题目描述
语文老师总是写错成绩,所以当她修改成绩的时候,总是累得不行。她总是要一遍遍地给某些同学增加分数,又要注意最低分是多少。你能帮帮她吗?
输入格式
第一行有两个整数 �n,�p,代表学生数与增加分数的次数。
第二行有 �n 个数,�1∼��a1∼an,代表各个学生的初始成绩。
接下来 �p 行,每行有三个数,�x,�y,�z,代表给第 �x 个到第 �y 个学生每人增加 �z 分。
输出格式
输出仅一行,代表更改分数后,全班的最低分。
#include <stdio.h>
#include <limits.h>
#define N 10000001
int a[N], b[N];
int main() {
int n,p,x,y,z;
int res = INT_MAX;
scanf("%d %d", &n, &p);
for (int i= 1; i <= n; i++) {
scanf("%d", &a[i]);
b[i] = a[i] - a[i - 1];
}
for (int i = 1; i <= p; i++) {
scanf("%d %d %d", &x, &y, &z);
b[x] += z;
b[y + 1] -= z;
}
for (int i = 1; i <= n; i++) {
a[i] = a[i - 1] + b[i];
res = res < a[i] ? res : a[i];
}
printf("%d\n", res);
return 0;
}