比赛 |
“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;
}