#CF1166C. 两域传说

两域传说

题意背景

有一个关于向量大陆起源的传说,涉及两个整数 xxyy

很久以前,数组国王在数轴上 x|x|y|y| 两个位置放下标记,占领了两点之间所有区域(包含端点),这片领地被命名为 数组大陆(Arrayland)

多年以后,向量国王在数轴上 xy|x-y|x+y|x+y| 两个位置放下标记,占领了两点之间所有区域(包含端点),这片领地被命名为 向量大陆(Vectorland)

传说成立的条件:数组大陆完全包含在向量大陆内部(允许端点重合)。

其中 z|z| 表示 zz 的绝对值。

问题描述

现在给出 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n,求满足以下条件的无序数对 {x,y}\{x,y\} 数量:

  1. x,yx,y 是数组中两个不同元素
  2. 把这两个数当作传说中的 x,yx,y 时,满足:数组大陆被完全包含在向量大陆中

数对是无序的,且两个元素必须取自数组、互不相同。


输入格式

第一行一个整数 nn2n21052\le n\le 2\cdot 10^5),表示候选数字个数。

第二行包含 nn互不相同的整数 a1,a2,,ana_1,a_2,\dots,a_n109ai109-10^9\le a_i\le 10^9)。

输出格式

输出合法无序数对的总数量。


样例输入 1

3
2 5 -3

样例输出 1

2

样例解释

数对 {2,5}\{2,5\} 不合法:

  • 数组大陆区间:[2,5]=[2,5][|2|,|5|] = [2,5]
  • 向量大陆区间:[25,2+5]=[3,7][|2-5|,|2+5|] = [3,7] 区间 [2,3][2,3] 不在向量大陆内,不满足包含关系。

数对 {5,3}\{5,-3\} 合法:

  • 数组大陆:[5,3]=[3,5][|5|,|-3|] = [3,5]
  • 向量大陆:[5(3),5+(3)]=[2,8][|5-(-3)|,|5+(-3)|] = [2,8] [3,5][3,5] 完全包含在 [2,8][2,8] 中。

数对 {2,3}\{2,-3\} 也合法,总共有 22 对。


样例输入 2

2
3 6

样例输出 2

1

样例解释

唯一数对 {3,6}\{3,6\}

  • 数组大陆:[3,6][3,6]
  • 向量大陆:[3,9][3,9] 数组大陆完全被包含,端点重合也算合法。

补充数学等价条件(方便解题)

u=x, v=yu=|x|,\ v=|y|,不妨令 uvu\le v; 向量区间为 [xy, x+y][|x-y|,\ |x+y|]。 题目包含条件等价于:

xyu        vx+y|x-y| \le u \;\;\text{且}\;\; v \le |x+y|

进一步可化简为只和绝对值有关的判定式,排序后可用双指针/二分快速统计。