雨季
题目描述
Smart 的家乡 WH 最近开始下雨,导致道路产生了不同程度的积水或损坏,现在他会给你描述一条街道的情况。
这条街道可以被分成 \(N\) 个部分,第 \(i\) 个部分的初始高度为 \(X_i\)(高度为正数代表有积水,高度为负数代表被损坏)。现在可以进行任意次操作,每次可以任意选择一些部分,使它们的高度一起增加 \(D\)(\(D\) 可以是正数也可以是负数)。现在 Smart 想知道最少要进行多少次操作可以使得整条街道的每个部分高度为 \(0\)。
格式
输入格式
第一行一个数 \(N\),表示街道被分成的段数。
第二行 \(N\) 个数,第 \(i\) 个数表示第 \(i\) 个部分的初始高度。
输出格式
一行一个数,表示最少需要进行的操作数。
样例1
样例输入1
4
2 0 -1 2
样例输出1
2
样例解释
第一次操作选择第 \(1、4\) 两个部分,把它们的高度都增加 \(-2\)。
此时高度分别为 \(0,0,-1,0\)。
第二次操作选择第 \(3\) 一个部分,把它的高度增加 \(1\)。
此时高度分别为 \(0,0,0,0\),操作结束。
限制
对于 \(30\%\) 的数据,满足 \(N≤10\)。
对于 \(70\%\) 的数据,满足 \(N≤1000\)。
对于另外 \(20\%\) 的数据,满足 \(X_i\) 互不相同。
对于 \(100\%\) 的数据,满足 \(N≤100000,|X_i|<=N\)。