#6616. 星星

星星

星星

题目描述

天文学家经常要检查星星的位置。每颗星星可以用平面上的一个点表示,坐标为:

(x, y)

我们定义一颗星星的级别为:

在所有已经给定的星星中,位置不高于它,并且不在它右边的星星数量。

换句话说,对于一颗星星 (x, y),如果另一颗星星 (x', y') 满足:

x' <= x 且 y' <= y

那么这颗星星就会被计入 (x, y) 的级别。

现在给出 n 颗星星的坐标,请统计级别为 0, 1, 2, ..., n - 1 的星星分别有多少颗。


输入格式

第一行一个整数 n,表示星星的数量。

接下来 n 行,每行两个整数 x, y,表示一颗星星的坐标。

输入数据保证:

星星按照 y 从小到大的顺序给出;
如果 y 相同,则按照 x 从小到大的顺序给出。

输出格式

输出 n 行。

i + 1 行输出级别为 i 的星星数量。

也就是说,依次输出:

级别为 0 的星星数量
级别为 1 的星星数量
级别为 2 的星星数量
...
级别为 n - 1 的星星数量

数据范围

1 <= n <= 15000
0 <= x <= 32000
0 <= y <= 32000

样例输入

5
1 1
5 1
7 1
3 3
5 5

样例输出

1
2
1
1
0

样例解释

按照输入顺序处理这 5 颗星星。

因为输入已经按照 y 从小到大排序,所以在处理当前星星时,之前出现过的星星一定满足:

y' <= y

因此,我们只需要统计之前出现过的星星中有多少颗满足:

x' <= x

这个数量就是当前星星的级别。


第 1 颗星星:(1, 1)

之前没有星星。

所以级别为:

0

第 2 颗星星:(5, 1)

之前有:

(1, 1)

满足:

1 <= 5 且 1 <= 1

所以级别为:

1

第 3 颗星星:(7, 1)

之前有:

(1, 1), (5, 1)

它们都满足 x' <= 7

所以级别为:

2

第 4 颗星星:(3, 3)

之前有:

(1, 1), (5, 1), (7, 1)

其中只有:

(1, 1)

满足 x' <= 3

所以级别为:

1

第 5 颗星星:(5, 5)

之前有:

(1, 1), (5, 1), (7, 1), (3, 3)

其中满足 x' <= 5 的有:

(1, 1), (5, 1), (3, 3)

所以级别为:

3

因此各级别的数量为:

级别 星星数量
0 1
1 2
2 1
3
4 0

所以输出:

1
2
1
1
0