#P3578. [POI 2014] LAM-Solar lamps

[POI 2014] LAM-Solar lamps

题目描述

Byteasar 有一座宽敞而美丽的花园。

为了能够在黄昏后也能欣赏花园的美景,他在花园中安装了一些灯。

这些灯是定向的,即它们只能照亮某个特定的角度,且所有灯的照明角度相同。此外,Byteasar 将它们对齐,使它们都朝向同一个方向。

最后但同样重要的是,这些是太阳能灯——奇怪的是,它们配备了太阳能电池板却没有电池!你可能会认为这些电池板因此毫无用处,每盏灯在夜间仍需电力供应,但事实并非如此:一盏灯在受到足够数量的其他灯照射时,它自己也会发光。

如今,Byteasar 甚至已经想好了为这些灯通电的顺序,从而依次点亮它们。为简单起见,我们按此顺序将灯编号为 11nn,即第 ii 号灯在时刻 ii 获得电力供应。对 Byteasar(当然也包括你!)来说,剩下的唯一任务就是弄清楚每盏灯究竟会在何时开始发光。请编写一个程序帮助 Byteasar 确定答案。

输入格式

第一行包含一个整数 nn (1n2000001 \le n \le 200\,000),表示 Byteasar 安装的灯的数量。

第二行包含四个整数 X1,Y1,X2,Y2X_1, Y_1, X_2, Y_2 (109Xi,Yi109-10^9 \le X_i, Y_i \le 10^9, (Xi,Yi)(0,0)(X_i, Y_i) \ne (0, 0)),以单个空格分隔,用于描述每盏灯的照明区域。

具体来说,如果有一盏灯位于点 (x,y)(x, y),那么它照亮的是从 (x,y)(x, y) 出发的两条射线所夹的较小角度内的区域(包括边界),其中第 ii (i=1,2i = 1, 2) 条射线经过点 (x+Xi,y+Yi)(x + X_i, y + Y_i)。该角度总是小于 180 度。

接下来 nn 行中的每一行描述一盏灯的位置:第 ii 行包含两个整数 xi,yix_i, y_i (109xi,yi109-10^9 \le x_i, y_i \le 10^9),以单个空格分隔,表示第 ii 号灯位于点 (xi,yi)(x_i, y_i)。数据保证没有两盏灯位于同一位置。

最后一行包含 nn 个整数 k1,k2,,knk_1, k_2, \cdots, k_n (1kin1 \le k_i \le n),以单个空格分隔,其含义是:如果第 ii 号灯被至少 kik_i 盏其他灯照亮,那么它也会开始发光。

输出格式

输出一行,包含 nn 个整数 t1,t2,,tnt_1, t_2, \cdots, t_n,以单个空格分隔。

tit_i 表示第 ii 号灯开始发光的时刻。

5
3 1 1 3
2 1
1 4
3 4
5 6
5 2
1 2 1 3 2

1 2 1 2 5

提示

共有 nn 盏灯。每盏灯具有相同的角度照明范围且朝向相同。第 ii 盏灯会在时刻 ii 通电,但如果它被至少 kik_i 盏其他灯照亮,则它会更早发光。请确定每盏灯实际发光的时刻。

由 DeepSeek-R1 翻译。