#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
long long c[N],b[N],s[N];
long long l[N],r[N],x[N];
int n,m;
bool ch(int mid)
{
memset(b,0,sizeof(b));
memset(s,0,sizeof(s));
for(int i=1;i<=mid;i++)
{
int L=l[i],R=r[i],X=x[i];
b[L]+=X;
b[R+1]-=X;
}
for(int i=1;i<=n;i++)
{
s[i]=s[i-1]+b[i];
if(s[i]>c[i])
{
return true;
}
}
return false;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>c[i];
}
for(int i=1;i<=n;i++)
{
cin>>l[i]>>r[i]>>x[i];
}
int l1=1,R1=m;
int ans=0;
while(l1<=R1)
{
int mid=(l1+r1)/2;
if(ch(mid)){
ans=mid;
R=mid-1;
}
else{
L=mid+1;
}
}
if(!ans){
cout<<"Yes";
}
else{
cout<<"No"<<endl;
cout<<ans<<endl;
}
return 0;
}
爱思创挑战赛 智能设备
最新推荐文章于 2024-10-04 17:07:53 发布