# 空袭 (airstrike.c/cpp)

## 我该如何编写这个程序

 1 2 3 #include "interface.h" // 实现部分 

 1 void initialize(const double *x, const double *y, const size_t n, const int id); 

xy是两个数组，给出的是市区的轮廓，即Lunk绘制的多边形的顶点，按照逆时针顺序给出。
n是多边形的顶点数量。
id是当前数据点的标号，在下文会有解释。

 1 bool query(const double dx, const double dy); 

dxdy是炸弹炸到的坐标。

 1 void finalize(); 

## 我该如何测试这个程序

 1 g++ main.cpp airstrike.cpp -std=c++11 -o main 

 1 g++ main.cpp airstrike.cpp -std=c++11 -o main -g 

 1 g++ main.cpp airstrike.cpp -std=c++11 -o main -O2 

 1 ./main 

## 样例输入1

 1 2 3 4 5 6 7 8 9 3 1 0 0 6 1 8 7 6 5 2 7 8 1 3 1 

## 样例输出1

 1 2 3 4 YES NO NO YES 

## 样例输入2

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7 1 1 1 7 1 4 2 3 4 7 5 5 6 1 6 0 4 2 4 4 4 5 3 5 5 3 1 

## 样例输出2

 1 2 3 4 5 6 NO YES NO NO YES YES 

## 数据限制

$7$个数据测试点，限制如下：

$1$ $\le 10$
$2$ $\le 10^3$
$3$ $\le 10^5$
$4$ $\le 2 \times 10^5$
$5$ $\le 10^6$ 左右的边与$y$轴平行，

$6$ $\le 10^6$ 凸多边形
$7$ $\le 10^3$ $0 \le x,\;y \le 10^3$

## 评分标准

$1$ $5$ $0.1\text{s}$
$2$ $10$ $1\text{s}$
$3$ $15$ $1\text{s}$
$4$ $30$ $1\text{s}$
$5$ $10$ $1\text{s}$
$6$ $15$ $1\text{s}$
$7$ $15$ $1\text{s}$

$1$ $\ge 10^5$ $\ge 2\times 10^5$ $\ge 3 \times 10^5$ $\ge 4 \times 10^5$ $\ge 5 \times 10^5$
$2$ $\ge 5 \times 10^4$ $\ge 10^5$ $\ge 2 \times 10^6$ $\ge 3 \times 10^6$ $\ge 4 \times 10^6$
$3$ $\ge 5 \times 10^2$ $\ge 10^3$ $\ge 2 \times 10^5$ $\ge 4 \times 10^5$ $\ge 5 \times 10^5$
$4$ $\ge 10^3$ $\ge 1 \times 10^5$ $\ge 2 \times 10^5$ $\ge 3 \times 10^5$ $\ge 4 \times 10^5$
$5$ $\ge 10^3$ $\ge 8 \times 10^5$ $\ge 10^6$ $\ge 1.2 \times 10^6$ $\ge 1.4 \times 10^6$
$6$ $\ge 5 \times 10^2$ $\ge 8 \times 10^5$ $\ge 10^6$ $\ge 1.2 \times 10^6$ $\ge 1.4 \times 10^6$
$7$ $\ge 10^6$ $\ge 2 \times 10^6$ $\ge 3 \times 10^6$ $\ge 4 \times 10^6$ $\ge 10^7$

## 后记

Lunk的孙子Lnk完成了这个大新闻。

nk是谁？