博客参考:https://www.cnblogs.com/Tianwell/p/11778494.html
主要是思想:
1、首先,l以上的所有鱼都不肯被捕捉
2、如果从捕鱼人来看,要两重循环,先循环捕鱼人在循环鱼
换一种思考,从鱼的角度,计算每条鱼可以被捕捉的x区间[L,R],在计算前缀和即可
需要注意:lower_bound(a,a+n,x)-a;寻找的是a中第一个大于等于x的值
upper_bound(a,a+n,x) - a; 寻找的是第一个大于x的值 此函数采用的是二分查找
3、sum[L]++; sum[R]--;
左区间+1说明从此点开始之后的捕鱼人皆可捕到这条鱼,右区间-1,说明过了此点,这条鱼将不再被该点后的捕鱼人捕到。
for (int i=1;i<=m;i++){
sum[i]+=sum[i-1];
}