#include<cstdio>
using namespace std;
int main(){
char c=getchar();
int ans=0,sum=1,l=0,r=0;
while (c=='('||c==')'){
if (c=='(')
++l;
else
++r;
if (l<r)
l=0,r=0;
if (l>=r&&r)
if (ans<r<<1)
ans=r<<1,sum=1;
else
if (ans==r<<1)
++sum;
c=getchar();
}
printf("%d %d\n",ans,sum);
return 0;
}
思路大概是每读入一个数时就判断右括号数是否大于左括号数,如是就计数清零(此时肯定已经不是合法子串),否则而且右括号数不为零时计算最长(ans),最多(sum),但就是第四个点错误(不知原数据),sum应该是1我却输出的4。