【10.11 D组 T4】cat
给定长为 \(n\) 的序列 \(a_i,c_i\) 和长为 \(m\) 的序列 \(b_j,d_j\)。
对于每个 \(i\in[1,n]\),求
\[\mathop{\operatorname{max}}\limits_{j=1}^{m} [b_j\ge c_i \wedge a_i\ge d_j] \times b_j
\]
若没有符合 \(b_j\ge c_i \operatorname{and} a_i\ge d_j\) 的 \(j\in[1,m]\),输出 \(-1\)。
将每一个询问看作:
- 给定 \(a\) 和 \(c\),求
\[\mathop{\operatorname{max}}\limits_{j=1}^{m} [d_j\le a] \times b_j
\]
- 若答案小于 \(c\),输出 \(-1\)。
为了满足 \(a\ge d_j\),可以考虑对 \(d_i\) 维护权值树状数组,再将问题转化为前缀 \(\operatorname{max}\)。
由于值域很大,离散化即可,注意离散化后值域是 \(4N\)。