题意:
解法:
对所有[s(i),t(i)]差分一下,最后前缀和恢复,如果存在某一时刻,热水需求量>W,则无法满足。
这题坑点在于给定S和T,要用热水的时间段实际上是[S,T-1]。
code:
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxm=1e6+5;
int a[maxm];
int n,W;
signed main(){
ios::sync_with_stdio(0);cin.tie(0);
cin>>n>>W;
for(int i=1;i<=n;i++){
int l,r,x;cin>>l>>r>>x;
a[l]+=x,a[r]-=x;
}
for(int i=1;i<=2e5;i++){
a[i]+=a[i-1];
}
for(int i=0;i<=2e5;i++){
if(a[i]>W){
cout<<"No"<<endl;
return 0;
}
}
cout<<"Yes"<<endl;
return 0;
}