| 比赛 | ?板子大赛 | 评测结果 | AAAAA |
|---|---|---|---|
| 题目名称 | 括号匹配 | 最终得分 | 100 |
| 用户昵称 | 小福鑫 | 运行时间 | 1.020 s |
| 代码语言 | C++ | 内存使用 | 23.43 MiB |
| 提交时间 | 2026-01-17 13:10:04 | ||
#include<bits/stdc++.h>
using namespace std;
int T,dp,t,mx,f;
string s;
stack<int> st;
map<char,int>mp;
int main(){
freopen("kakko.in","r",stdin);
freopen("kakko.out","w",stdout);
mp['(']=1,mp[')']=9,mp['[']=2,mp[']']=8,mp['{']=3,mp['}']=7,mp['<']=4,mp['>']=6;
mp['/']=-1,mp['#']=-2,mp['@']=-4,mp['?']=-8;
mp['\\']=10,mp['*']=20,mp['&']=40,mp['!']=80;
cin>>T;
while(T--){
dp=t=mx=0;
f=1;
cin>>s;
for(int i=0;i<s.size();i++){
if(mp[s[i]]<5){
if(mp[s[i]]>0){
st.push(mp[s[i]]);
dp++;
if(dp>mx){
mx=dp;
t=1;
}
else if(dp==mx){
t++;
}
}
else{
int q=-mp[s[i]];
for(int i=1;i<=q;i++){
st.push(-1);
dp++;
if(dp>mx){
mx=dp;
t=1;
}
else if(dp==mx){
t++;
}
}
}
}
else{
if(mp[s[i]]<10){
if(st.empty()||(st.top()+mp[s[i]]!=10&&st.top()>0)){
cout<<"FALSE"<<endl;
f=0;
break;
}
else{
st.pop();
dp--;
}
}
else{
int q=mp[s[i]]/10;
if(dp<q){
cout<<"FALSE"<<endl;
f=0;
break;
}
for(int j=1;j<=q;j++){
st.pop();
dp--;
}
}
}
}
if(!st.empty()&&f){
cout<<"FALSE"<<endl;
f=0;
}
while(!st.empty()){
st.pop();
}
if(f) cout<<"TRUE "<<mx<<" "<<t<<endl;
}
return 0;
}