数组下标从0开始,第四个样例过不了。 当然换成下标从1 开始还是能AC的。 想知道从0开始过不了的原因:)
// #include<bits/srdc++.h>
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int v[5000001];
int b[5000001];
int main(){
int n, p;
scanf("%d %d", &n, &p);
for (int i = 0; i < n;i++){
scanf("%d", &v[i]);
}
b[0] = v[0];
for (int i = 1; i < n;i++){
b[i] = v[i] - v[i - 1];
}
for (int i = 0; i < p;i++){
int x, y, z;
cin >> x >> y >> z;
b[x-1] += z;
b[y]-=z;
}
int min=1e9;
v[0] = b[0];
for (int i = 1; i < n;i++){
v[i] = v[i-1] + b[i];
if(min>v[i])
{
min=v[i];
}
}
cout<<min;
return 0;
}