Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int stk[100007],top;char a[100007];struct node{int l,r;}ans[100007];bool cmp(node &aa,node &bb){return aa.l<bb.l;}int num;int main(){scanf("%s",a+1);int len=strlen(a+1);for(int i=1;i<=len;i++){if(a[i]=='(') stk[++top]=i;else {ans[++num].l=stk[top];ans[num].r=i;top--;}}sort(ans+1,ans+1+num,cmp);for(int i=1;i<=num;i++)printf("%d %d\n",ans[i].l,ans[i].r);return 0;}