Source code for submission s1274

Go to diff to previous submission

bugs.cpp

  1. #include<iostream>
  2. #include<cstdio>
  3.  
  4. using namespace std;
  5.  
  6. int main( void ) {
  7. int number;
  8. string error;
  9. string line;
  10. char character;
  11.  
  12. while ( cin >> number >> error ) {
  13. scanf( "%c", &character);
  14. for ( int i = 0; i < number; i++ ) {
  15.  
  16. int counter = 0;
  17. line . clear();
  18.  
  19. while ( 1 ) {
  20. scanf( "%c", &character);
  21. if ( character == '\n' ) {
  22. break;
  23. }
  24.  
  25. line . push_back( character );
  26.  
  27. counter++;
  28. }
  29.  
  30. if ( !counter ) {
  31. cout << endl;
  32. continue;
  33. }
  34.  
  35. for ( int i = 0; i < (int) line . length(); i++ )
  36. if ( line [i] == error [error.length()-1]) {
  37. int index = error.length()-2;
  38. for ( int j = i-1; j >= 0; j-- )
  39. {
  40. if ( !index )
  41. {
  42. line . erase ( j, error . length () );
  43. i = j-1;
  44. break;
  45. }
  46.  
  47. if ( line [j] != error [index] )
  48. break;
  49.  
  50. index--;
  51. }
  52. }
  53.  
  54.  
  55. cout << line << endl;
  56. }
  57. }
  58. }

Diff to submission s1191

bugs.cpp

--- 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