2、雨季(rain)

2、雨季(rain)

【题目背景】
停云霭霭,时雨濛濛。八表同昏,平陆成江。

【题目描述】
小W的家乡最近开始下雨,导致道路产生了不同程度的积水或损坏,现在他会给你描述一条街道的情况。
这条街道可以被分成N个部分,第i个部分的初始高度为Xi(高度为正数代表有积水,高度为负数代表被损坏)。现在可以进行任意次操作,每次可以任意选择一些部分,使它们的高度一起增加D(D可以是正数也可以是负数)。现在小W想知道最少要进行多少次操作可以使得整条街道的每个部分高度为0。

【输入格式】
从文件rain.in中读入数据。
第一行一个数N,表示街道被分成的段数。
第二行N个数,第i个数表示第i个部分的初始高度。

【输出格式】
输出到文件rain.out中。
一行一个数,表示最少需要进行的操作数。

输入样例

4
2 0 -1 2

输出样例

2

【样例解释】
第一次操作选择第1、4两个部分,把它们的高度都增加-2。
此时高度分别为0,0,-1,0。
第二次操作选择第3一个部分,把它的高度增加1。
此时高度分别为0,0,0,0,操作结束。

Limitation

1s,256MiB for each test case.
【数据范围】
对于30%的数据,满足N≤10。
对于70%的数据,满足N≤1000。
对于另外20%的数据,满足Xi互不相同。
对于100%的数据,满足N≤100000,|Xi|<=N。