比赛 暑假综合模拟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;
}