Go to diff to previous submission
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; int main ( int argc, char * argv [] ) { int linesCount; unsigned int equal; unsigned int j, k; string bug; char *input = new char [2000000]; bool finish = false; int z = 0; while ( cin >> linesCount >> bug ) { z = 0; while( z < linesCount ) { if ( z == 0 ) gets(input); gets(input); for ( unsigned int i = 0; i < strlen( input ); i ++ ) { if ( input[ i ] != bug[ 0 ] ) { cout << input[ i ]; continue; } equal = 0; for ( j = 0; j < bug.length(); j ++ ) { if ( i + j > strlen( input ) && j < bug.length() ){ finish = true; break; } if ( input[ i + j ] == bug[ j ] ) equal ++; } if ( finish ) { for ( unsigned x = i; x < strlen( input ); x ++ ) cout << input[ x ]; } if ( equal == bug.length() ){ i += bug.length() - 1; continue; } for ( k = i; k < i + equal ; k ++ ) cout << input[ k ]; i = i + equal - 1; } z++;} } delete [] input; return 0; }