RT,求各位大佬指点一二
#include<bits/stdc++.h>
using namespace std;
const long long N=10e6+5;
long long n=0,m=0;
long long a[N],h[N],d[N],s[N],t[N],day[N];
bool chk(int mid){
memset(day,0,sizeof day);
for(int i=1;i<=mid;i++){
day[s[i]]+=d[i];
day[t[i]+1]-=d[i];
}
if(day[1]>h[1]){
return 0;
}
for(int i=2;i<=n;i++){
day[i]+=day[i-1];
if (day[i]>h[i]){
return 0;
}
}
return 1;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>h[i];
}
for(int i=1;i<=m;i++){
cin>>d[i]>>s[i]>>t[i];
}
int l=1,h=m;
while(l<h){
int mid=(l+h)/2;
if(chk(mid)==1){
l=mid+1;
}else{
h=mid-1;
}
}
if(m!=h){
cout<<"-1"<<endl<<h+1<<endl;
}else{
cout<<"0"<<endl;
}
return 0;
}