题目描述
多可爱的兔子啊!小A的农场里有许多可爱的兔子,每只兔子都有一个数字 a1,a2,a3,…,an。不同的兔子可能有相同的数字。小A认为这些兔子的可爱值是所有数字的乘积 a1×a2×a3×⋯×an。有一天,他想改变可爱值,于是他恰好带走一只兔子,使得新的可爱值与原来不同。
小A想知道,有多少种不同的新可爱值可能出现?
输入描述
第一行输入一个整数 n(2≤n≤105),表示兔子的数量。
第二行输入 n 个整数 ai(−109≤ai≤109),表示每只兔子的数字。
输出描述
输出一个整数,表示移除恰好一只兔子后,可能出现的不同新可爱值的数量(要求新可爱值必须与原可爱值不同)。
样例1
输入:
3
3 4 5
输出:
3
样例2
输入:
4
1 1 2 2
输出:
1
样例解释
第一个样例:
原可爱值为 3×4×5=60。
带走3后,新可爱值为 4×5=20;
带走4后,新可爱值为 3×5=15;
带走5后,新可爱值为 3×4=12。
因此,共有3种不同的新可爱值。
第二个样例:
原可爱值为 1×1×2×2=4。
移除第一个1后,新可爱值为 1×2×2=4(与原相同,不计入);
移除第二个1后,结果同上;
移除第一个2后,新可爱值为 1×1×2=2(不同,计入);
移除第二个2后,结果同上。
因此,只有1种不同的新可爱值。
限制与约定
对于 40% 的数据,保证 1≤n≤10 , −10≤ai≤10
对于 100% 的数据,保证 1≤n≤105 , −109≤ai≤109
- 时间限制: 1s
- 空间限制: 256MB