func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 1e6 + 1;   int f[MAXN];   int s[MAXN];   int e[MAXN];   int main() {     string S;     cin >> S;     int maxi = 0;     int len = 0;     int start = 0;     stack<int> st;     f[0] = 1;     s[0] = -1;     e[0] = -1;     for (int i = 0; i < S.length(); i++) {       if (S[i] ==  ( ) {         st.push(i);       } else if (st.empty()) {         e[i] = s[i] = -1;       } else {         start = st.top();         st.pop();         s[i] = e[i] = start;         start--;         if (start >= 0 && S[start] ==  )  && s[start] >= 0 && e[start] >= 0) {           e[i] = e[start];         }         len = i - e[i] + 1;         f[len]++;         maxi = max(maxi, len);       }     }     cout << maxi <<     << f[maxi] <<   n ;     return 0;   }   