比赛 ?板子大赛 评测结果 WEEEE
题目名称 括号匹配 最终得分 0
用户昵称 dbk 运行时间 0.608 s
代码语言 C++ 内存使用 4.21 MiB
提交时间 2026-01-17 13:26:49
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
stack<char>q1;
queue<char>q2;
int n, dep, k, mx;
int mp[1010];
string s;
int main(){
    freopen("kakko.in", "r", stdin);
    freopen("kakko.out", "w", stdout);
    cin >> n;
    mp['['] = mp[']'] = 3;
    mp['('] = mp[')'] = 1;
    mp['{'] = mp['}'] = 2;
    while(n--){
        cin >> s;
        for(int i = 0;i < (int)s.length();i++){
            if(s[i] == '[' || s[i] == '(' || s[i] == '{'){
                q1.push(s[i]);
                dep++;
            }
            else{
                if(mp[q1.top()] == mp[s[i]]){
                    q1.pop();
                }
                else{
                    q2.push(s[i]);
                }
                if(mx == dep) k++;
                if(mx < dep) mx = dep, k = 1;
                dep--;
            }
        } 
        if(mx == dep) k++;
        if(mx < dep) mx = dep, k = 1;
        if(q1.empty() && q2.empty()){
            cout<<"TRUE ";
            cout<<mx<<' '<<k<<endl;
        }
        else{
            cout<<"FALSE ";
        }
        while(!q1.empty()) q1.pop();
        while(!q2.empty()) q2.pop(); 
    }
}