CF131B Opposites Attract
题目描述
众所周知,异性相吸。这正是“完美配对”婚介所的核心原则。“完美配对”的红娘们根据每位注册客户的兴趣,为第 $i$ 位客户分配了一个编号 $t_{i}$($-10 \leq t_{i} \leq 10$)。当然,同一个编号可以分配给任意数量的客户。
“完美配对”希望通过广告宣传自己的服务,并公布拥有相反 $t$ 值的客户对数。每一对由恰好两位客户组成。如果两位客户的 $t$ 值互为相反数,则他们可以组成一对。每位客户可以被多次计入不同的配对。请帮助婚介所,编写程序,根据给定的序列 $t_{1}, t_{2}, ..., t_{n}$,计算满足条件的客户对数。例如,如果 $t=(1,-1,1,-1)$,那么任意一对 $t_{i}$ 和 $t_{j}$,只要 $i$ 和 $j$ 奇偶性不同,就能组成一对。因此,在这种情况下,答案为 4。
当然,一个客户不能和自己组成一对。
输入格式
输入的第一行包含一个整数 $n$($1 \leq n \leq 10^{5}$),表示“完美配对”注册客户的数量。第二行包含 $n$ 个整数 $t_{1}, t_{2}, ..., t_{n}$($-10 \leq t_{i} \leq 10$),$t_{i}$ 表示第 $i$ 位客户根据兴趣分析结果分配的参数。
输出格式
输出拥有相反 $t$ 值的客户对数。对于 $x$,其相反数为 $-x$($0$ 的相反数仍为 $0$)。仅顺序不同的同一对客户视为同一对。
注意,答案可能很大,因此你必须使用 64 位整数类型进行计算。请不要在 C++ 中使用 %lld 格式符进行输入输出,建议使用 cin、cout 流或 %I64d 格式符。
说明/提示
在第一个样例中,拥有相反 $t$ 值的客户对有:(1,2)、(1,5) 和 (3,4)。
在第二个样例中,任意一对客户都是相反的。
由 ChatGPT 4.1 翻译