Go to diff to previous submission
#include <cstdio> #include <cstring> int main() { char bug[1001], line[2000001]; int T, buglen; while (scanf("%d ", &T) == 1) { scanf("%s\n", bug); buglen = strlen(bug); for ( ; T; T--) { gets(line); for ( int i = 0; line[i]; i++ ) { if (strncmp(line+i, bug, buglen) == 0) { strcpy(line+i, line+i+buglen); i -= buglen; if ( i < 0 ) i = 0; } } printf("%s\n", line); } } return 0; }
--- c4.s1179.cteam059.bugs.cpp.0.bugs.cpp +++ c4.s1198.cteam059.bugs.cpp.0.bugs2.cpp @@ -1,28 +1,28 @@ -#include <iostream> -#include <string> -#include <iostream> -using namespace std; +#include <cstdio> +#include <cstring> int main() { - string line, bug; - int T; - size_t pos; + char bug[1001], line[2000001]; + int T, buglen; - while (cin >> T) + while (scanf("%d ", &T) == 1) { - cin >> bug; - cin.ignore(); + scanf("%s\n", bug); + buglen = strlen(bug); for ( ; T; T--) { - pos = 0; - getline(cin, line); - while ((pos = line.find(bug, pos)) != string::npos) + gets(line); + for ( int i = 0; line[i]; i++ ) { - line.erase(pos, bug.length()); - pos = pos - bug.length(); - pos = (pos < 0) ? 0 : pos; + if (strncmp(line+i, bug, buglen) == 0) + { + strcpy(line+i, line+i+buglen); + i -= buglen; + if ( i < 0 ) + i = 0; + } } - cout << line << endl; + printf("%s\n", line); } }