#include<bits/stdc++.h>
using namespace std;
int n,p,a[5000010],b[5000010],mi=1000000;//a是语文成绩,b是差分数组,mi用来记录最低成绩
int main(){
cin>>n>>p;
for(int i=1;i<=n;i++){
cin>>a[i];
b[i]=a[i]-a[i-1];//输入成绩时就记录差分,减小时间复杂度
}
while(p--){
int x,y,z;
cin>>x>>y>>z;
b[x]+=z; b[y+1]-=z;//对于每一次的修改,用差分数组记录
}
for(int i=1;i<=n;i++){
a[i]=a[i-1]+b[i];//将a数组更新为修改之后的成绩
if(mi>a[i]) mi=a[i];//更新最低成绩
}
cout<<mi;
return 0;
}
//如果不用mi记录最低成绩,而使用sort函数排序,再输出a[1]则会超时
P2367 语文成绩
于 2025-04-06 21:06:33 首次发布