#include <bits/stdc++.h>
using namespace std;
char s[300005];
int sum[600005];
int dp[600005][3];
int ri[600005][3];
int main() {
  int n;
  scanf("%d", &n);
  scanf("%s", s + 1);
  int cnt = 0;
  for (int i = 1; i <= n; i++) {
    if (s[i] == '(')
      cnt++;
    else
      cnt--;
  }
  if (cnt != 0) {
    printf("0\n");
    printf("1 1\n");
    return 0;
  }
  int mn = 0;
  sum[0] = 0;
  for (int i = 1; i <= n; i++) {
    if (s[i] == '(')
      sum[i] = sum[i - 1] + 1;
    else
      sum[i] = sum[i - 1] - 1;
    mn = min(mn, sum[i]);
  }
  for (int i = n + 1; i <= n + n; i++) {
    if (s[i - n] == '(')
      sum[i] = sum[i - 1] + 1;
    else
      sum[i] = sum[i - 1] - 1;
  }
  for (int i = 1; i <= n + n; i++) {
    if (sum[i] == mn)
      dp[i][0]++;
    else if (sum[i] == mn + 1)
      dp[i][1]++;
    else if (sum[i] == mn + 2)
      dp[i][2]++;
    for (int j = 0; j < 3; j++) dp[i][j] += dp[i - 1][j];
  }
  for (int j = 0; j < 3; j++) ri[n + n + 1][j] = 1e9;
  for (int i = n + n; i >= 1; i--) {
    if (sum[i] == mn)
      ri[i][0] = i;
    else if (sum[i] == mn + 1)
      ri[i][1] = i;
    else if (sum[i] == mn + 2)
      ri[i][2] = i;
    for (int j = 0; j < 3; j++) {
      if (ri[i][j] == 0) ri[i][j] = ri[i + 1][j];
    }
  }
  int ans = dp[n][0] - dp[0][0];
  int l = 1, r = 1;
  for (int i = 1; i <= n; i++) {
    if (sum[i] - sum[i - 1] == 1) {
      int j = i + n - 1;
      int k = ri[i][1];
      if (k != i) {
        int res = dp[k - 1][2] - dp[i - 1][2];
        res += dp[j][0] - dp[k - 1][0];
        if (res > ans) {
          if (k > n) k -= n;
          ans = res;
          l = i;
          r = k;
        }
      }
      j = i + n - 1;
      k = ri[i][0];
      if (k != i) {
        int res = dp[k - 1][1] - dp[i - 1][1];
        if (res > ans) {
          if (k > n) k -= n;
          ans = res;
          l = i;
          r = k;
        }
      }
    }
  }
  printf("%d\n", ans);
  printf("%d %d\n", l, r);
}
