Go to diff to previous submission
#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) == 2) { Blen = strlen(B); while (getchar() != '\n'); 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; }
--- c4.s767.cteam091.bugs.cpp.0.bugs.cpp +++ c4.s779.cteam091.bugs.cpp.0.bugs.cpp @@ -26,7 +26,9 @@ int Blen; - while (scanf(" %d %s", &T, B) != EOF) { + while (scanf(" %d %s", &T, B) == 2) { Blen = strlen(B); + while (getchar() != '\n'); + for (int i = 0; i < T; i++) { fgets(line, 2000004, stdin);