#1472. 可爱兔子

可爱兔子

题目描述

多可爱的兔子啊!小AA的农场里有许多可爱的兔子,每只兔子都有一个数字 a1,a2,a3,,ana_1, a_2, a_3, \dots, a_n。不同的兔子可能有相同的数字。小AA认为这些兔子的可爱值是所有数字的乘积 a1×a2×a3××ana_1 \times a_2 \times a_3 \times \dots \times a_n。有一天,他想改变可爱值,于是他恰好带走一只兔子,使得新的可爱值与原来不同。

AA想知道,有多少种不同的新可爱值可能出现?

输入描述

第一行输入一个整数 nn2n1052 \leq n \leq 10^5),表示兔子的数量。

第二行输入 nn 个整数 aia_i109ai109-10^9 \leq a_i \leq 10^9),表示每只兔子的数字。

输出描述

输出一个整数,表示移除恰好一只兔子后,可能出现的不同新可爱值的数量(要求新可爱值必须与原可爱值不同)。

样例1

输入:

3  
3 4 5  

输出:

3  

样例2

输入:

4  
1 1 2 2  

输出:

1  

样例解释

第一个样例:

原可爱值为 3×4×5=603 \times 4 \times 5 = 60

带走33后,新可爱值为 4×5=204 \times 5 = 20

带走44后,新可爱值为 3×5=153 \times 5 = 15

带走55后,新可爱值为 3×4=123 \times 4 = 12

因此,共有33种不同的新可爱值。

第二个样例:

原可爱值为 1×1×2×2=41 \times 1 \times 2 \times 2 = 4

移除第一个1后,新可爱值为 1×2×2=41 \times 2 \times 2 = 4(与原相同,不计入);

移除第二个1后,结果同上;

移除第一个2后,新可爱值为 1×1×2=21 \times 1 \times 2 = 2(不同,计入);

移除第二个2后,结果同上。

因此,只有1种不同的新可爱值。

限制与约定

对于 40%40\% 的数据,保证 1n10 1 \le n \le 10 , 10ai10 -10 \le a_i \le 10

对于 100%100\% 的数据,保证 1n105 1 \le n \le 10^5 , 109ai109 -10^9 \le a_i \le 10^9

  • 时间限制: 1s1 s
  • 空间限制: 256MB256 MB