题目描述
语文老师总是写错成绩,所以当她修改成绩的时候,总是累得不行。她总是要一遍遍地给某些同学增加分数,又要注意最低分是多少。你能帮帮她吗?
输入格式
第一行有两个整数 𝑛,𝑝,代表学生数与增加分数的次数。
第二行有 𝑛 个数,𝑎1∼𝑎𝑛,代表各个学生的初始成绩。
接下来 𝑝 行,每行有三个数,𝑥,𝑦,𝑧,代表给第 𝑥 个到第 𝑦 个学生每人增加 𝑧 分。
输出格式
输出仅一行,代表更改分数后,全班的最低分。
代码:
package lanqiao;
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int p = sc.nextInt();
int[] a = new int[5000001];
int[] d = new int[5000001];
for (int i = 1; i <= n; i++) {
a[i] = sc.nextInt();
}
for(int i = 1;i <= n;i ++)
{
d[i] = a[i] - a[i - 1];
}
while(p -- != 0)
{
int x = sc.nextInt();
int y = sc.nextInt();
int z = sc.nextInt();
d[x] += z;
d[y + 1] -= z;
}
int min = Integer.MAX_VALUE;
for(int i = 1;i <= n;i ++)
{
a[i] = a[i - 1] + d[i];
if(min > a[i])
{
min = a[i];
}
}
System.out.println(min);
}
}