Go to diff to previous submission
#include<iostream> #include<cstdio> using namespace std; int main( void ) { int number; string error; string line; char character; while ( cin >> number >> error ) { scanf( "%c", &character); for ( int i = 0; i < number; i++ ) { int counter = 0; line . clear(); while ( 1 ) { scanf( "%c", &character); if ( character == '\n' ) { break; } line . push_back( character ); counter++; } if ( !counter ) { cout << endl; continue; } for ( int i = 0; i < (int) line . length(); i++ ) if ( line [i] == error [error.length()-1]) { int index = error.length()-2; for ( int j = i-1; j >= 0; j-- ) { if ( !index ) { line . erase ( j, error . length () ); i = j-1; break; } if ( line [j] != error [index] ) break; index--; } } cout << line << endl; } } }
--- c4.s1191.cteam017.bugs.cpp.0.bugs.cpp +++ c4.s1274.cteam017.bugs.cpp.0.bugs.cpp @@ -1,76 +1,58 @@ #include<iostream> #include<cstdio> -#include<deque> using namespace std; -int main ( void ) -{ +int main( void ) { int number; string error; + string line; char character; - while ( cin >> number >> error ) - { - scanf ( "%c", &character); - for ( int i = 0; i < number; i++ ) - { + while ( cin >> number >> error ) { + scanf( "%c", &character); + for ( int i = 0; i < number; i++ ) { int counter = 0; - deque <char> stack; + line . clear(); - while ( 1 ) - { - scanf ( "%c", &character); - if ( character == '\n' ) + while ( 1 ) { + scanf( "%c", &character); + if ( character == '\n' ) { break; - + } - if ( character == error [ error . length () - 1 ] ) - { - stack . push_back ( character ); - int index = error . length () - 1; - deque<char>::iterator n; - int i = 0; - for ( n = stack . end (), i = ( (int) ( stack . size () ) - 1 ); n != stack . begin (); n--, i-- ) - { - if ( stack [i] == error [index] ) - { - if ( index == 0 ) - { - deque<char>::iterator x; - for ( x = n; x <= ( n + error . length () - 1 ); x++ ) - stack . erase ( x ); - - break; - } - - index--; - } - else - break; - } - - } - else - stack . push_back ( character ); + line . push_back( character ); counter++; } - if ( !counter ) - { + if ( !counter ) { cout << endl; continue; } + for ( int i = 0; i < (int) line . length(); i++ ) + if ( line [i] == error [error.length()-1]) { + int index = error.length()-2; + for ( int j = i-1; j >= 0; j-- ) + { + if ( !index ) + { + line . erase ( j, error . length () ); + i = j-1; + break; + } + + if ( line [j] != error [index] ) + break; + + index--; + } + } - for ( int i = 0; i < ( int ) stack . size (); i++ ) - cout << stack [i]; - cout << endl; + cout << line << endl; } } - - return ( 0 ); } \ No newline at end of file