比赛 |
暑假综合模拟2 |
评测结果 |
AAAAA |
题目名称 |
括号匹配 |
最终得分 |
100 |
用户昵称 |
wsp |
运行时间 |
0.295 s |
代码语言 |
C++ |
内存使用 |
0.19 MiB |
提交时间 |
2018-08-07 20:29:52 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
#include<fstream>
using namespace std;
ifstream fin("kakko.in");
ofstream fout("kakko.out");
stack <char> kuohao;
int main() {
int a,str,max,cs;
bool cuowu;
fin>>a;
string l;
for(int i=1; i<=a; i++) {
max=0;
cuowu=0;
cs=0;
fin>>l;
str=l.length();
for(int j=0; j<str; j++) {
if(l[j]=='('||l[j]=='['||l[j]=='{'||l[j]=='<')kuohao.push(l[j]);
else if(l[j]==']'||l[j]=='}'||l[j]==62)
if(kuohao.size()>=1)
if(kuohao.top()==l[j]-2||kuohao.top()=='Q')
kuohao.pop();
else {
fout<<"FALSE"<<endl;
cuowu=1;
break;
}
else {
fout<<"FALSE"<<endl;
cuowu=1;
break;
}
else if(l[j]==')')
if(kuohao.size()>=1)
if(kuohao.top()=='('||kuohao.top()=='Q')kuohao.pop();
else {
fout<<"FALSE"<<endl;
cuowu=1;
break;
}
else {
fout<<"FALSE"<<endl;
cuowu=1;
break;
}
else if(l[j]=='/')kuohao.push('Q');
else if(l[j]=='#') {
kuohao.push('Q');
kuohao.push('Q');
} else if(l[j]=='@') {
kuohao.push('Q');
kuohao.push('Q');
kuohao.push('Q');
kuohao.push('Q');
} else if(l[j]=='?') {
kuohao.push('Q');
kuohao.push('Q');
kuohao.push('Q');
kuohao.push('Q');
kuohao.push('Q');
kuohao.push('Q');
kuohao.push('Q');
kuohao.push('Q');
} else if(l[j]==92)
if(kuohao.size()>=1) kuohao.pop();
else {
fout<<"FALSE"<<endl;
cuowu=1;
break;
}
else if(l[j]=='*')
if(kuohao.size()>=2) {
kuohao.pop();
kuohao.pop();
} else {
fout<<"FALSE"<<endl;
cuowu=1;
break;
}
else if(l[j]=='&')
if(kuohao.size()>=4) {
kuohao.pop();
kuohao.pop();
kuohao.pop();
kuohao.pop();
} else {
fout<<"FALSE"<<endl;
cuowu=1;
break;
}
else if(l[j]=='!')
if(kuohao.size()>=8) {
kuohao.pop();
kuohao.pop();
kuohao.pop();
kuohao.pop();
kuohao.pop();
kuohao.pop();
kuohao.pop();
kuohao.pop();
} else {
fout<<"FALSE"<<endl;
cuowu=1;
break;
}
if(max<kuohao.size()) {
max=kuohao.size();
cs=1;
}
else if(max==kuohao.size())cs++;
}
if(cuowu==0&&kuohao.size()==0)fout<<"TRUE "<<max<<" "<<cs;
else if(cuowu==0)fout<<"FALSE";
while(!kuohao.empty())kuohao.pop();
}
fclose(stdout);
return 0;
}