主要应用前缀和方法解决问题
package lanqiao;
import java.util.Scanner;
/**
* 2023/11/29
*/
public class lanqiao3898_泡澡 {
static final int MAX = (int) 2e5;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();//洗澡人数
long w = scan.nextLong();//热水器容量
long[] pre = new long[MAX];
while (n-- > 0) {
int l = scan.nextInt();//开始时间
int r = scan.nextInt();//结束时间
int p = scan.nextInt();//用水量
pre[l] += p;//前加p,后减p,使得结果前后未变,只有中间结果每位加p
pre[r] -= p;
}
long need = 0;//需要用水量
for (int i = 0; i < MAX; i++) {
need += pre[i];
if (need > w) {//如果所需大于容量,则无法按计划供应热水
System.out.println("No");
return;//一旦输出,结束程序
}
}
System.out.println("Yes");
}
}
2 5
1 3 3
2 3 3
No
进程已结束,退出代码为 0