比赛 “Asm.Def战记之太平洋”杯 评测结果 AAWWWWWATT
题目名称 Asm.Def谈笑风生 最终得分 30
用户昵称 dracul 运行时间 4.244 s
代码语言 C++ 内存使用 2.86 MiB
提交时间 2015-11-02 09:01:33
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int z[100005];
char x[100005][25],r[25];
bool y[100005];
int w=0,e=0;
int read(){
	gets(r);
	w++;
	z[w]=strlen(r);
	for(int i=0;i<z[w];i++){
		x[w][i+1]=r[i];
	}
	memset(r,0,sizeof(r));
}
int remember(){
	int b;
	bool c=1;
	e++;
	gets(r);
	b=strlen(r);
	for(int i=1;i<=w;i++){
		bool d=1;
		while(z[i]!=b){
			if(i<w){
				i++;
			}else{
				goto t;
			}
		}
		for(int o=0;o<b;o++){
			while(r[o]=='*'||x[i][o+1]=='*'){
				o++; 
			}
			if(r[o]!=x[i][o+1]){
				c=0;
				break;
			}
		}
		if(c){
			y[e]=1;
			t:
			break;
		}
	}
}
int out(){
	for(int i=1;i<=e;i++){
		if(y[i]){
			cout<<"YES"<<endl;
		}else{
			cout<<"NO"<<endl;
		}
	} 
}
int main(){
	freopen("asm_talk.in","r",stdin);
	freopen("asm_talk.out","w",stdout);
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		int a;
		cin>>a;
		if(a==1){
			read();
		}else{
			remember();
		}
	}
	out();
	return 0;
}