#include <bits/stdc++.h>
long long gi() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (!isdigit(ch)) f ^= ch == '-', ch = getchar();
  while (isdigit(ch)) x = x * 10 + ch - '0', ch = getchar();
  return f ? x : -x;
}
char S[600010];
int A[600010];
int suf[600010], mn[600010];
int pre[600010], s1[600010], s2[600010];
int main() {
  int n = gi();
  scanf("%s", S + 1);
  for (int i = 1; i <= n; ++i) S[i + n] = S[i];
  for (int i = 1; i <= n; ++i) A[i] = S[i] == '(' ? 1 : -1;
  mn[n + 1] = 1e9;
  for (int i = 1; i <= n; ++i) pre[i] = pre[i - 1] + A[i];
  for (int i = n; i; --i)
    suf[i] = suf[i + 1] + A[i], mn[i] = std::min(mn[i + 1], pre[i]);
  int p = 0;
  suf[0] = -1e9;
  for (int i = 1; i <= n; ++i)
    if (mn[i] + suf[i] >= 0 && suf[i] > suf[p]) p = i;
  if (!p || pre[n]) return puts("0\n1 1"), 0;
  for (int i = 1; i <= n; ++i) S[i] = S[i + p - 1];
  for (int i = 1; i <= n; ++i) A[i] = S[i] == '(' ? 1 : -1;
  int cnt = 0, ans = 0, al = 1, ar = 1;
  auto upd = [&](int a, int b, int c) {
    if (a > ans) ans = a, al = b, ar = c;
  };
  for (int i = 1, s = 0; i <= n; ++i) s += A[i], cnt += !s;
  for (int l = 1, r; l <= n; l = r) {
    r = l;
    pre[l] = A[l];
    ++r;
    while (r <= n && pre[r - 1] > 0) {
      pre[r] = A[r] + pre[r - 1];
      ++r;
    }
    if (pre[r - 1] < 0) {
      if (r <= n * 2) return puts("0\n1 1"), 0;
      break;
    }
    for (int i = l; i < r; ++i)
      s2[i] = pre[i] == 2 && S[i] == ')', s1[i] = pre[i] == 1 && S[i] == ')';
    for (int i = l + 1; i < r; ++i) s2[i] += s2[i - 1], s1[i] += s1[i - 1];
    for (int L = l, R; L < r; L = R + 1) {
      R = L;
      if (pre[L] != 2 || S[L] != '(') continue;
      while (R < r && (pre[R] != 1 || S[R] != ')')) ++R;
      upd(s2[R - 1] - s2[L] + 1, L, R);
    }
    for (int L = l, R; L < r; L = R + 1) {
      R = L;
      if (pre[L] != 1 || S[L] != '(') continue;
      while (R < r && (pre[R] != 0 || S[R] != ')')) ++R;
      upd(s1[R - 1] - s1[L] - cnt + 1, L, R);
    }
  }
  printf("%d\n", cnt + ans);
  printf("%d %d\n", (al + p - 2) % n + 1, (ar + p - 2) % n + 1);
  return 0;
}
