#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, arr[100001];
  scanf("%d", &n);
  bool flag = true;
  for (int i = 0; i < n; i++) {
    scanf("%d", &arr[i]);
    if (i > 0 && arr[i] > arr[i - 1]) {
      flag = false;
    }
  }
  if (flag) {
    printf("yes\n1 %d\n", n);
    return 0;
  }
  if (is_sorted(arr, arr + n)) {
    printf("yes\n1 1\n");
    return 0;
  }
  int cs1 = 0, in1, cs2 = 0, in2;
  for (int i = 1; i < n - 1; i++) {
    if (arr[i] < arr[i - 1] && arr[i] < arr[i + 1]) {
      cs1++;
      in1 = i;
    } else if (arr[i] > arr[i - 1] && arr[i] > arr[i + 1]) {
      cs2++;
      in2 = i;
    }
  }
  if (cs1 == 1 && !cs2 && arr[0] < arr[in1 + 1]) {
    printf("yes\n1 %d\n", in1 + 1);
    return 0;
  } else if (cs2 == 1 && !cs1 && arr[n - 1] > arr[in2 - 1]) {
    printf("yes\n%d %d", in2 + 1, n);
    return 0;
  }
  bool key = true;
  int cnt = 0;
  flag = false;
  for (int i = 1; i < n; i++) {
    if (arr[i] < arr[i - 1] && key) {
      in1 = i - 1;
      key = false;
    }
    if (!key && arr[i] > arr[i - 1]) {
      in2 = i - 1;
      break;
    }
  }
  for (int i = 1; i < in1; i++) {
    if (arr[i] < arr[i - 1]) {
      puts("no");
      return 0;
    }
  }
  for (int i = in2 + 1; i < n; i++) {
    if (arr[i] < arr[i - 1]) {
      puts("no");
      return 0;
    }
  }
  if (arr[in1] < arr[in2 + 1] && arr[in2] > arr[in1 - 1]) {
    printf("yes\n%d %d\n", in1 + 1, in2 + 1);
    return 0;
  }
  puts("no");
  return 0;
}
