#include<bits/stdc++.h>
#define il inline
#define ll long long
#define rep(i,a,b,k) for(register ll i=a;i<=b;i+=k)
#define drep(i,a,b,k) for(register ll i=a;i>=b;i-=k)
using namespace std;
const int mn=1e6+5;
stack<char> st;
string s;
int len=0,ans,now,ansi;
bool sus[mn];
int main()
{
cin>>s;
len=s.length();
rep(i,0,len-1,1)
{
if(s[i]=='('||s[i]=='[')
{
st.push(s[i]);
now=1;
}
else if((st.size())&&((s[i]==')'&&st.top()=='(')||(s[i]==']'&&st.top()=='[')))
{
sus[i]=1;
sus[i-now]=1;
st.pop();
now+=2;
if(st.empty())
now=1;
}
}
now=0;
rep(i,0,len-1,1)
{
if(!sus[i])
now=0;
else
{
now++;
if(now>ans)
{
ans=now;
ansi=i;
}
}
}
rep(i,ansi-ans+1,ansi,1)
printf("%c",s[i]);
return 0;
}
样例全过了,只能求Hack了