#include <bits/stdc++.h>
using namespace std;
int tree[5555];
int MaxVal;
int read(int idx) {
  int sum = 0;
  while (idx > 0) {
    sum += tree[idx];
    idx -= (idx & -idx);
  }
  return sum;
}
void update(int idx, int val) {
  while (idx <= MaxVal) {
    tree[idx] += val;
    idx += (idx & -idx);
  }
}
int a[5555];
int main() {
  int n, m, i, j, k;
  cin >> n;
  MaxVal = n;
  int tot = 0;
  for (i = 0; i < (n); i++) {
    scanf("%d", &a[i]);
    a[i]++;
    for (j = 0; j < (n); j++) {
      if (a[j] > a[i]) tot++;
    }
  }
  k = 0;
  int mx = 0;
  for (i = 0; i < (n); i++) {
    for (j = 0; j < (i); j++) {
      update(a[j], +1);
    }
    for (j = 0; j < (i); j++) {
      update(a[j], -1);
      if (a[i] < a[j]) {
        int s = 1;
        s += 2 * ((read(a[j])) - (read(a[i])));
        if (s > mx) {
          mx = s;
          k = 0;
        }
        if (s == mx) k++;
      }
    }
  }
  printf("%d %d\n", tot - mx, k);
  return 0;
}
