Source code for submission s1198

Go to diff to previous submission

bugs2.cpp

  1. #include <cstdio>
  2. #include <cstring>
  3.  
  4. int main()
  5. {
  6. char bug[1001], line[2000001];
  7. int T, buglen;
  8.  
  9. while (scanf("%d ", &T) == 1)
  10. {
  11. scanf("%s\n", bug);
  12. buglen = strlen(bug);
  13. for ( ; T; T--)
  14. {
  15. gets(line);
  16. for ( int i = 0; line[i]; i++ )
  17. {
  18. if (strncmp(line+i, bug, buglen) == 0)
  19. {
  20. strcpy(line+i, line+i+buglen);
  21. i -= buglen;
  22. if ( i < 0 )
  23. i = 0;
  24. }
  25. }
  26. printf("%s\n", line);
  27. }
  28. }
  29.  
  30. return 0;
  31. }
  32.  

Diff to submission s1179

bugs.cpp

--- 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);
                 }
         }