#include <iostream>
using namespace std;

#define MAXSIZE 50000

int countch(int a[], int n, bool up)
// up: na począku w górę (true) albo w dół (false)
{
  int result = 0, prev = a[0];
  int nm1 = n - 1;
  for (int i = 1; i < nm1; i++)
  {
    if (up && prev >= a[i]) // Ma być w górę, a nie jest
    {
      prev = (prev > a[i + 1] ? prev : a[i + 1]) + 1;
      result++;
    }
    else if (!up && prev <= a[i])
    {
      prev = (prev < a[i + 1] ? prev : a[i + 1]) - 1;
      result++;
    }
    else
      prev = a[i];
    up = !up;
  }
  // Czy ostatni trzeba zmienić?
  if ((up && prev >= a[nm1]) || (!up && prev <= a[nm1]))
    result++;
  return result;
}

int main()
{
  int n, minchnum;
  int a[MAXSIZE];
  cin >> n;
  for (int i = 0; i < n; i++)
    cin >> a[i];
  
  int chnum1 = countch(a, n, true);
  int chnum2 = countch(a, n, false);
  minchnum = (chnum1 < chnum2 ? chnum1 : chnum2);
  
  cout << minchnum << endl;
  // system("pause");
}
