#include <bits/stdc++.h>
using namespace std;
int N,a[200005];
int main(){
	scanf("%d",&N);
	for (int i=1;i<=N;i++)
		scanf("%d",&a[i]);
	int ans=0,now=0,v[2]{};
	for (int i=1;i<=N+1;i++){
		int p[2]{0,a[i]-now};
		if (p[0]<p[1]) swap(p[0],p[1]);
		int nex[3]{1000000000,1000000000,0};
		for (int j=0;j<2;j++)
			for (int k=0;k<2;k++)
				nex[j+k]=min(max(0,v[j]+p[k]),nex[j+k]);
		int d=nex[0]>a[i];
		for (int j=0;j<2;j++)
			v[j]=nex[j+d];
		ans+=d;
		now=a[i];
	}
	cout<<ans;
	return 0;
}