bugs.cpp
#include <cstdio>
#include <string>
#include <vector>
#include <cstring>
using namespace std;
int main(void){
char bug[1024];
int d;
char k;
while (scanf("%d %1000s%c", &d, bug, &k)==3){
vector<int> intS;
char c = 0;
int bp = 0;
int blen = strnlen(bug, 1020);
for (int i = 0; i < d; i++){
bp = 0;
while((c = getchar())!= '\n'){
if (c==bug[bp]){
// printf("bp=%d; bug[bp]=%c;\n", bp, bug[bp]);
bp++;
if (bp == blen){
if (intS.empty()){
bp=0;
} else {
bp=intS.back();
intS.pop_back();
}
}
}
else{
if (c == bug[0]){
intS.push_back(bp);
bp = 1;
}
else{
intS.push_back(bp);
for (vector<int>::iterator it=intS.begin();
it!=intS.end(); it++){
for (int jk = 0 ; jk <*it; jk++)
printf("%c", bug[jk]);
}
intS.clear();
bp = 0;
printf("%c",c);
}
}
}
intS.push_back(bp);
for (vector<int>::iterator it=intS.begin();
it!=intS.end(); it++){
for (int jk = 0 ; jk <*it; jk++)
printf("%c", bug[jk]);
}
intS.clear();
printf("\n");
}
}
return 0;
}