比赛 |
“Asm.Def战记之太平洋”杯 |
评测结果 |
WWWWWWWTTT |
题目名称 |
Asm.Def谈笑风生 |
最终得分 |
0 |
用户昵称 |
asddddd |
运行时间 |
6.021 s |
代码语言 |
C++ |
内存使用 |
0.32 MiB |
提交时间 |
2015-11-02 11:19:55 |
显示代码纯文本
//
// main.cpp
// asm_talk
//
// Created by Qing Liu on 15/11/2.
// Copyright © 2015年 Qing Liu. All rights reserved.
//
#include <iostream>
#include <cstring>
#include <cmath>
#include <vector>
#include<cstdio>
using namespace std;
vector<string>asd;
string temp;
int pi[33];
bool pipei(int a){
int p=0;
string s=asd[a];
for (int i=1;i<=s.size();i++ ) {
while (p>0&&s[i-1]!=temp[p]&&temp[p]!='*') {
p=pi[p];
}
if(s[i-1]==temp[p]||temp[p]=='*'){
p++;
}
if(p==temp.size()){
return 1;
}
}
return 0;
}
void fail(){
int p=0;
for (int i=2;i<=temp.size(); i++) {
while (p>0&&temp[p]!=temp[i-1]&&temp[i-1]!='*') {
p=pi[p];
}
if (temp[p]==temp[i-1]||temp[i-1]=='*') {
p++;
}
pi[i]=p;
}
}
int main() {
freopen("asm_talk.in", "r", stdin);
freopen("asm_talk.out", "w", stdout);
ios::sync_with_stdio(0);
int n;
cin>>n;
for (int i=0; i<n; i++) {
int type;
cin>>type;
type--;
if (type) {
bool psk=0;
cin>>temp;
memset(pi, 0, sizeof(pi));
fail();
for (int i=0; i<asd.size(); i++) {
string s=asd[i];
if (asd.size()!=temp.size()) {
continue;
}
else{
psk+=pipei(i);
}
}
if (psk)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
else{
string s;
cin>>s;
asd.push_back(s);
}
}
return 0;
}