200220 - 覆盖次数

时间限制

20 毫秒

内存限制

128 MB

通过次数

1

提交次数

1

n个区间[s_i,d_i],求被覆盖1、2、3……n次的整数点的个数。

这个题有点难,达到提高组的难度了,先放着吧。

输入

第一行,一个整数n,表示区间个数。

接下来n行,每行两个整数s_i,d_i,分别表示区间起点和终点。

对于100%的数据:

1\le n \le 2\cdot 10^5

0\le s_i \le d_i \le 10^{18}

输出

一行,由单个空格分隔的n个整数,分别表示被覆盖1、2、3……n次的整数点的个数。

样例

输入

3
0 3
1 3
3 8

输出

6 2 1 

输入

3
1 3
2 4
5 7

输出

5 2 0 

提示

数据本身的范围非常大,不适合使用桶来记录。思考如何用区间起点和终点直接计算覆盖的点的个数。

样例一图示:

样例二图示:

提示:可以把终点向后移一个坐标,这样可以直接计算终点到起点的差,更重要的是使得一个点上既有起点又有终点的情况更容易得到正确处理。