Home STD Contest Notification Clarification Problems Ranklist Status Print Sign Out
1006题面更新,部分题面内存调整More...

Angle Beats

Time Limit: 20000/15000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 1022    Accepted Submission(s): 58


Problem Description
在平面上给定 $n$ 个互不相同的点,有 $q$ 次询问。

每次询问给定一个点 $A$,问这 $n$ 个点中有多少个无序点对 $(B,C)$,使得 $A,B,C$ 可以构成一个非退化的直角三角形。
 

Input
输入第一行两个正整数 $n,q$,表示给定的点数和询问个数。

接下来 $n$ 行,每行两个整数 $x,y$,表示一个点。

接下来 $q$ 行,每行两个整数 $x,y$,表示一次询问。

$1 \le n,q \le 2000, |x|,|y| \le 10^9$

输入的 $n+q$ 个点 $(x,y)$ 两两不同。

Hint

样例解释

对于 $(0,0)$,有 $\{(0,0),(0,1),(1,0)\},\{(0,0),(0,1),(-1,0)\},\{(0,0),(0,-1),(1,0)\},\{(0,0),(0,-1),(-1,0)\}$ 这四个直角三角形。

对于 $(1,1)$,有 $\{(1,1),(0,1),(1,0)\}, \{(1,1),(0,1),(0,-1)\}, \{(1,1),(1,0),(-1,0)\}$ 这三个直角三角形。
 

Output
输出共 $q$ 行,每行一个非负整数,表示询问的答案。
 

Sample Input
4 2 0 1 1 0 0 -1 -1 0 0 0 1 1
 

Sample Output
4 3
 

Source
642ccpcQHD
 

Statistic | Submit | Clarifications | Back