#include <bits/stdc++.h>
using namespace std;
const int N = 5e2 + 10;
int d1[N], d2[N], a[N];
int d[N];
int main() {
  int n;
  scanf("%d", &n);
  int k = 0;
  int k1 = 0;
  int sum = 0;
  for (int i = 1; i <= n; i++) {
    scanf("%d", a + i);
    sum += a[i];
    if (a[i] > 1)
      d2[++k] = i;
    else
      d1[++k1] = i;
  }
  if (sum < n * 2 - 2) {
    puts("NO");
    return 0;
  }
  int d = k - 1 + min(k1, 2);
  printf("YES %d\n", d);
  printf("%d\n", n - 1);
  for (int i = 2; i < k; i++) a[d2[i]] -= 2;
  if (k > 1) a[d2[1]]--, a[d2[k]]--;
  for (int i = 1; i < k; i++) {
    printf("%d %d\n", d2[i], d2[i + 1]);
  }
  if (k1) {
    if (a[d2[k]]) {
      printf("%d %d\n", d2[k], d1[k1]);
      k1--;
      a[d2[k]]--;
    }
  }
  if (k1) {
    for (int i = 1; i <= k; i++) {
      while (a[d2[i]] && k1) {
        printf("%d %d\n", d2[i], d1[k1]);
        a[d2[i]]--;
        k1--;
      }
    }
  }
  return 0;
}
