每个断面的下界是覆盖它的回灌泵里最大的那个,上界是覆盖它的稀释闸里最小的那个,再按公式夹到 [loi,hii] 里。区间修改次数很多,用扫描线把区间拆成端点事件,从左扫到右维护当前生效的上界、下界。
流域调度中心要在一次夜间联调后,给出每个监测断面的最终浊度。值班员必须按稀释闸和回灌泵同时生效后的规则计算,并把整条河段的结果写入调度日志。
沿河依次有 w 个监测断面,编号 1∼w,第 i 个断面的初始浊度是整数 vi。当晚有两类覆盖连续断面的调度指令会一起执行:
对每个断面 i,把覆盖它的所有回灌泵下界取最大值,记为 loi(没有回灌泵则 loi=0);把覆盖它的所有稀释闸上界取最小值,记为 hii(没有稀释闸则 hii=+∞)。最终浊度
ei=min(max(vi, loi), hii)请输出 e1,e2,…,ew。
断面个数 w 满足 1≤w≤ 200000,稀释闸条数 x 与回灌泵条数 y 满足 0≤x,y≤ 200000,初始浊度与指令中的上界、下界均满足 0≤vi,c,d≤ 1000000000。
第一行三个整数 w、x、y(1≤w≤ 200000,0≤x,y≤ 200000),表示断面数、稀释闸数和回灌泵数。
第二行 w 个整数 v1,v2,…,vw(0≤vi≤ 1000000000),表示初始浊度。
接下来 x 行,每行三个整数 L、R、c(1≤L≤R≤w,0≤c≤ 1000000000),表示一条稀释闸。
接下来 y 行,每行三个整数 L、R、d(1≤L≤R≤w,0≤d≤ 1000000000),表示一条回灌泵。
输出一行 w 个整数,即各断面的最终浊度,相邻数之间用空格分隔。
输入
4 1 1
2 9 1 6
2 4 5
1 2 4
输出
4 5 1 5
说明
回灌泵覆盖 1 到 2,下界数组为 lo=[4,4,0,0];稀释闸覆盖 2 到 4,上界数组为 hi=[+∞,5,5,5]。
输入
3 0 0
1 0 7
输出
1 0 7
说明
当晚没有调度指令,最终浊度就是初始浊度。
输入
3 1 1
5 5 5
1 3 2
1 3 8
输出
2 2 2
说明
三个断面都被下界 8 和上界 2 同时覆盖。先被抬到 8,再被上界压到 2,因此三个位置都是 2。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册