#include <bits/stdc++.h>
using namespace std;
const int MAXN = 150000;
int n;
int a[MAXN];
int isbad[MAXN];
int check_bad(int l, int r) {
  r--;
  if (l <= r)
    return (isbad[r + 1] - isbad[l]) != 0;
  else
    return false;
}
bool badF(int x) {
  int sign = (x % 2 == 0) ? 1 : -1;
  if (0 <= x && x + 1 < n) return (a[x] * sign >= a[x + 1] * sign);
  return false;
}
set<pair<int, int> > res;
void solve(int A) {
  for (int B = 0; B < n; B++) {
    int s = min(A, B);
    int t = max(A, B);
    swap(a[s], a[t]);
    if (!check_bad(0, s - 1) && !check_bad(s + 1, t - 1) &&
        !check_bad(t + 1, n - 1) && !badF(s - 1) && !badF(s) && !badF(t - 1) &&
        !badF(t))
      res.insert(make_pair(s, t));
    swap(a[s], a[t]);
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < (n); i++) scanf("%d", &a[i]);
  for (int i = 0; i < (n - 1); i++) isbad[i + 1] = badF(i);
  for (int i = 0; i < (n - 1); i++) isbad[i + 1] += isbad[i];
  for (int i = 0; i < (n - 1); i++)
    if (badF(i)) {
      solve(i);
      solve(i + 1);
      break;
    }
  printf("%d\n", res.size());
  return 0;
}
