#include <bits/stdc++.h>
using namespace std;
int a[5010];
int dp[5010][5010];
int dp1[5010][5010];
int get(int x, int y, int ch) {
  return (dp[x][ch] - dp[y][ch]) - (dp1[x][ch] - dp1[y][ch]);
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  for (int i = 1; i < n; i++) {
    for (int y = 0; y < 5000; y++) {
      dp[i][y] = dp[i - 1][y];
      dp1[i][y] = dp1[i - 1][y];
    }
    for (int y = 0; y < a[i - 1]; y++) dp[i][y]++;
    for (int y = a[i - 1] + 1; y < 5000; y++) dp1[i][y]++;
  }
  int ch = 0;
  for (int i = 0; i < n; i++) {
    ch += dp[i][a[i]];
  }
  int dap = -1;
  int gap = 0;
  for (int i = 0; i < n; i++) {
    for (int y = 0; y <= i; y++) {
      int xx = get(i, y, a[i]) - get(i, y, a[y]);
      if (dap == xx)
        gap++;
      else if (dap < xx) {
        dap = xx;
        gap = 1;
      }
    }
  }
  printf("%d %d", ch - dap, gap);
}
