#include <bits/stdc++.h>
using namespace std;
int x[150010];
set<int> y;
int main() {
  int n;
  cin >> n;
  for (int i = (1); i < (n + 1); i++) cin >> x[i];
  int ones = 0, twos = 0;
  for (int i = (1); i < (n); i++) {
    if (i % 2 && x[i] >= x[i + 1]) {
      y.insert(i);
      y.insert(i + 1);
      ones++;
    } else if (i % 2 == 0 && x[i] <= x[i + 1]) {
      y.insert(i);
      y.insert(i + 1);
      ones++;
    }
  }
  for (int i = (1); i < (n - 1); i++) {
    if (i % 2 && x[i] >= x[i + 1] && x[i + 1] <= x[i + 2]) {
      y.insert(i);
      y.insert(i + 1);
      y.insert(i + 2);
      twos++;
    } else if (i % 2 == 0 && x[i] <= x[i + 1] && x[i + 1] >= x[i + 2]) {
      y.insert(i);
      y.insert(i + 1);
      y.insert(i + 2);
      twos++;
    }
  }
  if (twos > 2 || ones > (twos + 2))
    cout << "0\n";
  else {
    int v = 0;
    for (__typeof((y).begin()) i = (y).begin(); i != (y).end(); i++)
      for (int j = (1); j < (n + 1); j++)
        if (j != *i && (y.find(j) == y.end() || j > *i)) {
          int f = 1;
          swap(x[*i], x[j]);
          for (__typeof((y).begin()) k = (y).begin(); k != (y).end(); k++)
            if ((*k) + 1 <= n) {
              if ((*k) % 2)
                f &= (x[*k] < x[(*k) + 1]);
              else
                f &= (x[*k] > x[(*k) + 1]);
            }
          for (int k = (max(1, j - 1)); k < (j + 1); k++)
            if (k + 1 <= n) {
              if (k % 2)
                f &= (x[k] < x[k + 1]);
              else
                f &= (x[k] > x[k + 1]);
            }
          v += f;
          swap(x[*i], x[j]);
        }
    cout << v << "\n";
  }
  return 0;
}
