比赛 “Asm.Def战记之太平洋”杯 评测结果 AAAAAAAATT
题目名称 Asm.Def谈笑风生 最终得分 80
用户昵称 Satoshi 运行时间 4.201 s
代码语言 C++ 内存使用 0.70 MiB
提交时间 2015-11-02 11:02:46
显示代码纯文本
#include <fstream>
#include <vector>
#include <string>
#define N 100010
using namespace std;
ifstream in("asm_talk.in");
ofstream out("asm_talk.out");
int m;
int n=0;
string a,b;
string s[N];
vector<int> G[100];
bool check()
{
	int l,u,v;
	int i,j;
	bool flag=0,temp=1;
	l=a.length();
	for(i=0;i<G[l].size();i++)
	{
		u=G[l][i];
		temp=1;
		b=s[u];
		for(j=0;j<l;j++)
		{
			if(a[j]!=s[u][j]&&a[j]!='*')
			{
				temp=0;
				break;
			}
		}
		if(temp)
		{
			flag=1;
			break;
		}
	}
	return flag;
}
void work()
{
	int i;
	int op;
	bool flag=0;
	in>>m;
	//out<<m<<endl;
	for(i=1;i<=m;i++)
	{
		in>>op;
		if(op==1)
		{
			in>>s[++n];
			G[s[n].length()].push_back(n);
		}
		else
		{
			in>>a;
			flag=check();
			if(flag)out<<"YES"<<endl;
			else out<<"NO"<<endl;
		}
	}
}
int main()
{
	work();
	return 0;
}