bugs.cpp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
typedef struct {
const char *needle;
size_t npos;
size_t len;
size_t *prefix_table;
} kmp_ctx;
void kmp_init(kmp_ctx *ctx, const char *needle) {
size
}
*/
int main(void) {
int T;
char B[1024];
char line[2000004];
char line2[2000004];
int Blen;
while (scanf(" %d %s", &T, B) != EOF) {
Blen = strlen(B);
for (int i = 0; i < T; i++) {
fgets(line, 2000004, stdin);
int line_len = strlen(line);
char *s = line;
char *out = line2;
bool changed;
do {
char *f;
changed = false;
while ((f = strstr(s, B)) != NULL) {
changed = true;
while (s != f) {
*(out++) = *(s++);
}
s += Blen;
}
strcpy(out, s);
memcpy(line, line2, line_len);
s = line;
out = line2;
} while (changed);
printf("%s", line);
}
}
return 0;
}