这道题是一个差分模板题,只能说很经典,模板写完后还要注意,用一个循环去寻找一个最小值就可以了。
话不多说,直接上代码。
Code
#include <bits/stdc++.h>
using namespace std;
int a[5000005];
int c[5000005];
int main(){
int n,p;
cin >> n >> p;
a[0]=0;
for(int i=1;i<=n;i++){
cin >> a[i];
c[i] = a[i] - a[i-1];
}
for(int i=1;i<=p;i++){
int x,y,z;
cin >> x >> y >> z;
c[x] += z;
c[y+1] -= z;
}
int mn=205;
for(int i=1;i<=n;i++){
a[i] = a[i-1] + c[i];
mn = min(mn,a[i]);
}
cout << mn;
return 0;
}