比赛 |
“Asm.Def战记之太平洋”杯 |
评测结果 |
AWWWWWWWTT |
题目名称 |
Asm.Def谈笑风生 |
最终得分 |
10 |
用户昵称 |
Fmuckss |
运行时间 |
5.625 s |
代码语言 |
C++ |
内存使用 |
2.52 MiB |
提交时间 |
2015-11-02 11:45:24 |
显示代码纯文本
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#define maxn 100050
using namespace std;
char s[maxn][22];
int slen[maxn];
int st=0;
int n;
/*void getnext(cahr a[],int next[]){
int k=-1;
for(int i=0;i<strlen(a);i++){
if(k==-1||a[i]==a[k]){
j++;
k++;
if(a[i]!=a[k]){
next[i]=k;
}else{
next[i]=next[k];
}
}else{
k=next[k];
}
}
}
bool kmp(char a[],char b[]){
}*/
int getstar(char sol[],int start){
for(int i=0;i<start;i++){
if(sol[i]=='*');
return start;
}
return -1;
}
bool same(char a[],char b[],int len){
for(int i=0;i<len;i++){
if(a[i]!=b[i]){
return false;
}
}
return true;
}
void solve(){
char sol[22];
gets(sol);
int solt=strlen(sol);
int start=getstar(sol,solt);
for(int i=1;i<=st;i++){
if(slen[i]==solt){
if(start!=-1) sol[start]=s[i][start];
if(same(sol,s[i],solt)){
printf("YSE\n");
return ;
}
}
}
printf("NO\n");
}
void read(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
int a;
scanf("%d ",&a);
if(a==1){
st++;
gets(s[st]);
slen[st]=strlen(s[st]);
}else{
solve();
}
}
}
int main(){
freopen("asm_talk.in","r",stdin);
freopen("asm_talk.out","w",stdout);
read();
return 0;
}