#include <bits/stdc++.h>
using namespace std;
using LINT = long long int;
using PII = pair<int, int>;
int n;
int nums[150007];
set<int> errs;
bool check(int si) {
  if (si % 2 == 0) {
    if (si - 1 >= 0)
      if (nums[si - 1] <= nums[si]) return false;
    if (si + 1 < n)
      if (nums[si + 1] <= nums[si]) return false;
  } else {
    if (si - 1 >= 0)
      if (nums[si - 1] >= nums[si]) return false;
    if (si + 1 < n)
      if (nums[si + 1] >= nums[si]) return false;
  }
  for (int erridx : errs) {
    if (erridx % 2 == 0) {
      if (erridx - 1 >= 0)
        if (nums[erridx - 1] <= nums[erridx]) return false;
      if (erridx + 1 < n)
        if (nums[erridx + 1] <= nums[erridx]) return false;
    } else {
      if (erridx - 1 >= 0)
        if (nums[erridx - 1] >= nums[erridx]) return false;
      if (erridx + 1 < n)
        if (nums[erridx + 1] >= nums[erridx]) return false;
    }
  }
  return true;
}
int main() {
  cin >> n;
  for (int i = 0; i < (n); ++i) cin >> nums[i];
  for (int i = 0; i < (n); ++i) {
    if (i % 2 == 0) {
      if ((i > 0 && nums[i - 1] <= nums[i]) ||
          (i < n - 1 && nums[i + 1] <= nums[i]))
        errs.insert(i);
    } else {
      if ((i > 0 && nums[i - 1] >= nums[i]) ||
          (i < n - 1 && nums[i + 1] >= nums[i]))
        errs.insert(i);
    }
  }
  if (errs.size() >= 8) {
    cout << 0 << endl;
    return 0;
  }
  LINT cnt = 0;
  for (int erridx : errs) {
    for (int i = 0; i < (n); ++i) {
      if (errs.count(i) == 1 && erridx >= i) continue;
      swap(nums[i], nums[erridx]);
      cnt += check(i);
      swap(nums[i], nums[erridx]);
    }
  }
  cout << cnt << endl;
  return 0;
}
