CF992A.Nastya and an Array
入门
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Nastya owns too many arrays now, so she wants to delete the least important of them. However, she discovered that this array is magic! Nastya now knows that the array has the following properties:
- In one second we can add an arbitrary (possibly negative) integer to all elements of the array that are not equal to zero.
- When all elements of the array become equal to zero, the array explodes.
Nastya is always busy, so she wants to explode the array as fast as possible. Compute the minimum time in which the array can be exploded.
纳斯塔娅现在拥有的数组太多了,因此她想删除其中最不重要的一个。然而,她发现这个数组是“魔法”的!纳斯塔娅现在知道该数组具有以下性质:
- 每秒我们可以给数组中所有不等于零的元素加上一个任意的(可能为负的)整数;
- 当数组的所有元素都变为零时,该数组就会爆炸。
纳斯塔娅总是很忙,因此她希望尽快让数组爆炸。请计算使数组爆炸所需的最短时间。
输入格式
The first line contains a single integer n (1 ≤ n ≤ 105) — the size of the array.
The second line contains n integers _a_1, _a_2, ..., a__n ( - 105 ≤ a__i ≤ 105) — the elements of the array.
第一行包含一个整数 n(1≤n≤105)—— 数组的大小。
第二行包含 n 个整数 a1,a2,…,an(−105≤ai≤105)—— 数组的元素。
输出格式
Print a single integer — the minimum number of seconds needed to make all elements of the array equal to zero.
输出一个整数——使数组中所有元素变为零所需的最少秒数。
输入输出样例
输入#1
5 1 1 1 1 1
输出#1
1
输入#2
3 2 0 -1
输出#2
2
输入#3
4 5 -6 -5 1
输出#3
4
说明/提示
In the first example you can add - 1 to all non-zero elements in one second and make them equal to zero.
In the second example you can add - 2 on the first second, then the array becomes equal to [0, 0, - 3]. On the second second you can add 3 to the third (the only non-zero) element.
在第一个例子中,你可以在一秒内将所有非零元素都加上 −1,使它们变为零。
在第二个例子中,你可以在第一秒加上 −2,此时数组变为 [0, 0, −3]。在第二秒,你可以对第三个(也是唯一一个非零的)元素加上 3。
输入解题思路,AI测评打分。不知道怎么写?