CF609F Frogs and mosquitoes
题目描述
有 $n$ 只青蛙坐在坐标轴 $Ox$ 上。对于每只青蛙,已知两个值 $x_i, t_i$ —— 第 $i$ 只青蛙的位置和舌头的初始长度(保证所有位置 $x_i$ 都是不同的)。$m$ 只蚊子依次降落到坐标轴上。对于每只蚊子,已知两个值 $p_j$ —— 第 $j$ 只蚊子降落的位置坐标,和 $b_j$ —— 第 $j$ 只蚊子的大小。青蛙和蚊子都表示为坐标轴上的点。
如果蚊子与青蛙在同一位置或在青蛙的右侧,且它们之间的距离不大于青蛙舌头的长度,那么青蛙可以吃掉蚊子。
如果在某个时刻有多只青蛙可以吃掉一只蚊子,最左边($x_i$ 最小)的青蛙会吃掉它。吃掉蚊子后,青蛙的舌头长度会增加被吃掉的蚊子的大小。此后,这只青蛙可能能够吃掉其他蚊子(在这种情况下,青蛙应该吃掉它们)。
对于每只青蛙,输出两个值——吃掉的蚊子数量以及所有蚊子降落并完成所有捕食后舌头的长度。
每只蚊子只有在青蛙吃完所有之前降落的能吃掉的蚊子后才会降落到坐标轴上。蚊子按照它们降落到坐标轴上的顺序给出。
输入格式
第一行包含两个整数 $n, m$($1 \le n, m \le 2 \cdot 10^5$)——青蛙和蚊子的数量。
接下来的 $n$ 行,每行包含两个整数 $x_i, t_i$($0 \le x_i, t_i \le 10^9$)——第 $i$ 只青蛙的位置和舌头的初始长度。保证所有 $x_i$ 都是不同的。
接下来的 $m$ 行,每行包含两个整数 $p_j, b_j$($0 \le p_j, b_j \le 10^9$)——第 $j$ 只蚊子的位置和大小。
输出格式
输出 $n$ 行。第 $i$ 行应包含两个整数值 $c_i, l_i$ —— 第 $i$ 只青蛙吃掉的蚊子数量和第 $i$ 只青蛙的舌头长度。