比赛 “Asm.Def战记之太平洋”杯 评测结果 WWWAWWWWTT
题目名称 Asm.Def谈笑风生 最终得分 10
用户昵称 fyb 运行时间 4.152 s
代码语言 C++ 内存使用 2.75 MiB
提交时间 2015-11-02 09:40:07
显示代码纯文本
#include <cstdio>
#include <vector>
#include <cstring>

using namespace std;

#define MMAX 100000
#define LMAX 20
#define NUM 26

int pf=0;

int len[MMAX];
char str[MMAX][LMAX+5];
char ts[LMAX+5];

bool fyb_strcmp(int ind){
	int lenstr,lents;
	int i,j;

	lenstr=len[ind];
	lents=strlen(ts);
	for(i=0;true;i++){
		if(ts[i]=='*'){
			for(j=0;ts[lents-j-1]!='*';j++)
				if(ts[lents-j-1]!=str[ind][lenstr-j-1])return false;
			return (lenstr>i+j);
		}
		if(str[ind][i]=='\0'&&ts[i]=='\0')return true;
		if(str[ind][i]=='\0'||ts[i]=='\0')return false;
		if(str[ind][i]!=ts[i])return false;
	}
}
		

int main(){
	int m;
	int tt;
	bool fnd;
	int i,j;

	freopen("asm_talk.in","r",stdin);
	freopen("asm_talk.out","w",stdout);

	scanf("%d",&m);
	for(i=0;i<m;i++){
		scanf("%d",&tt);
		if(tt==1){
			scanf("%s",str[pf]);
			len[pf++]=strlen(str[pf]);
		}else{
			scanf("%s",ts);
			fnd=false;
			for(j=0;j<pf;j++)
				if(fyb_strcmp(j)){
					printf("YES\n");
					fnd=true;
					break;
				}
			if(!fnd)printf("NO\n");
		}
	}
	return 0;
}