#include<bits/stdc++.h>
using namespace std;

const int inf=2000114514;
int n,a[200010],v,p[3],vv,pp[10],ff[10],ppn;

int main()
{
	scanf("%d",&n),a[1]=0;
	for (int i=2; i<=n+1; i++) scanf("%d",&a[i]);
	a[n+=2]=0,v=0,p[0]=0,p[1]=p[2]=inf;
	for (int i=2; i<=n; i++)
	{
		ppn=0;
		for (int j=0; j<3; j++)
		{
			if (p[j]<=a[i]) pp[++ppn]=p[j];
			if (p[j]>=a[i-1]-a[i]&&p[j]<=a[i-1]) pp[++ppn]=p[j]-a[i-1]+a[i];
		}
		sort(pp+1,pp+1+ppn);
		for (int j=1; j<=ppn; j++)
		{
			ff[j]=inf;
			for (int k=0; k<3; k++) if (p[k]!=inf)
				ff[j]=min(ff[j],v-k+(pp[j]<p[k])+(pp[j]<a[i]-a[i-1]+p[k]));
		}
		int nw=0;
		for (int j=1; j<=ppn; j++)
			if (j==1||ff[j]!=ff[j-1]) 
			{
				p[nw++]=pp[j];
				if (nw==1) v=ff[j];
			}
		while (nw<3) p[nw++]=inf;
	}
	for (int k=2; k>=0; k--) if (p[k]!=inf) return printf("%d\n",v-k),0;
}