QOJ.ac

QOJ

时间限制: 4 s 内存限制: 128 MB 总分: 100 难度: [显示]

#308. 太阳能灯

统计

Byteasar 有一个很大且漂亮的花园。为了在黄昏后也能欣赏花园的美景,他在花园里安装了一些灯。

这些灯是有方向的,也就是说,它们只照亮一个特定的角度,且所有灯照亮的角度都相同。此外,Byteasar 调整了它们的方向,使它们都朝向同一个方向。最后,这些是太阳能灯,也就是说,它们配有太阳能电池板,但奇怪的是,它们没有电池!你可能认为这些电池板因此毫无用处,每盏灯在晚上都需要电力,但事实并非如此:如果足够数量的灯照亮了某盏灯,它就会发光。

目前,Byteasar 甚至想出了一个他将为这些灯供电的顺序,从而将它们打开。为简单起见,我们按此顺序将灯编号为 $1$ 到 $n$,即第 $i$ 号灯在时间 $i$ 被供电。Byteasar(当然还有你!)剩下的唯一任务就是弄清楚每盏灯具体在什么时候开始发光。请编写一个程序来帮助 Byteasar 确定这个问题的答案。

输入格式

标准输入的第一行包含一个整数 $n$ ($1 \le n \le 200\,000$),表示 Byteasar 安装的灯的数量。第二行包含四个整数 $X_1, Y_1, X_2, Y_2$ ($-10^9 \le X_i, Y_i \le 10^9, (X_i, Y_i) \neq (0, 0)$),用空格分隔,描述了每盏灯照亮的区域。具体来说,如果有一盏灯位于点 $(x, y)$,那么它照亮的区域(包括边界)是两条射线所形成的较小角内的区域,这两条射线都从 $(x, y)$ 出发,其中第 $i$ 条射线($i=1, 2$)经过点 $(x + X_i, y + Y_i)$。这个角度总是小于 $180$ 度。

接下来的 $n$ 行指定了灯的位置:第 $i$ 行包含两个整数 $x_i, y_i$ ($-10^9 \le x_i, y_i \le 10^9$),用空格分隔,表示第 $i$ 号灯位于点 $(x_i, y_i)$。你可以假设没有两盏灯位于同一个位置。

输入的最后一行包含 $n$ 个整数 $k_1, k_2, \dots, k_n$ ($1 \le k_i \le n$),用空格分隔,表示如果第 $i$ 号灯被至少 $k_i$ 盏其他灯照亮,那么它也会开始发光。

在总分 $30\%$ 的测试中,满足 $n \le 1000$。

输出格式

你的程序应向标准输出打印一行,包含 $n$ 个整数 $t_1, \dots, t_n$,用空格分隔。数字 $t_i$ 应为第 $i$ 号灯开始发光的时间。

样例

输入格式 1

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

输出格式 1

1 2 1 2 5

说明

在时间 $1$,Byteasar 打开了第 $1$ 号灯。一旦第 $2$ 号灯被打开,第 $4$ 号灯就开始发光(因为它被第 $1, 2, 3$ 号灯照亮)。

样例评分测试

  • 测试点 1:$n = 7$,一个小规模随机测试。
  • 测试点 2:$n = 6$,灯照亮的角度为零(Byteasar 误买了激光灯)。
  • 测试点 3:$n = 160\,000$,灯排列成 $400 \times 400$ 的网格,且照亮的角度为 $90$ 度,其边平行于笛卡尔坐标轴。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.