解法一:
差分
#include<iostream>
#include<vector>
#include<algorithm>
#define endl '\n'
using namespace std;
void addNum(vector<int>& a) {
int l, r, x;
cin >> l >> r >> x;
a[l] += x;
a[r + 1] -= x;
}
void print(vector<int>& a) {
vector<int> b(a);
for (int i = 1; i < a.size()-1; i++)
b[i] += b[i - 1];
int mn = *min_element(b.begin() + 1, b.end()-1);
cout << mn << endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int n, p;
cin >> n >> p;
vector<int> vec(n + 2, 0);
vector<int> tem(n + 2, 0);
for (int i = 1; i <= n; i++) {
cin >> tem[i];
vec[i] = tem[i] - tem[i - 1];
}
while (p--) {
addNum(vec);
}
print(vec);
return 0;
}
解法二:
暴力