Source code for submission s1374

Go to diff to previous submission

bugs.cpp

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5.  
  6. #define eatline() {while (getchar() != '\n');}
  7.  
  8. int max(int a, int b)
  9. {
  10. return a > b ? a : b;
  11. }
  12.  
  13. char riadok[2000001];
  14.  
  15. int main()
  16. {
  17. int riadkov;
  18. while (scanf("%d", &riadkov) == 1)
  19. {
  20. char bug[1001];
  21. scanf("%s", bug);
  22. eatline();
  23. for (int i = 0; i < riadkov; i++)
  24. {
  25.  
  26.  
  27. int bugLen = strlen(bug);
  28.  
  29. gets(riadok);
  30. int riadokLen = strlen(riadok);
  31.  
  32.  
  33. char * first;
  34. int offset = 0;
  35. while (first = strstr(riadok + offset, bug))
  36. {
  37. offset = max(first - riadok - bugLen, 0);
  38. memcpy(first, first + bugLen, riadokLen - (first - riadok));
  39. // strcpy(first, first + bugLen);
  40. }
  41. puts(riadok);
  42. }
  43.  
  44. }
  45. return 0;
  46. }
  47.  

Diff to submission s1316

bugs.cpp

--- c4.s1316.cteam072.bugs.cpp.0.bugs.cpp
+++ c4.s1374.cteam072.bugs.cpp.0.bugs.cpp
@@ -28,13 +28,14 @@
                         
                         gets(riadok);
+                        int riadokLen = strlen(riadok);
 
                 
                         char * first;
                         int offset = 0;
-                        while (first = strstr(riadok, bug))
+                        while (first = strstr(riadok + offset, bug))
                         {
-//                              offset = max(first - riadok - bugLen, 0);
-//                              memcpy(riadok + first, riadok + first + bugLen, 2000001 - (first - riadok));
-                                strcpy(first, first + bugLen);
+                                offset = max(first - riadok - bugLen, 0);
+                                memcpy(first, first + bugLen, riadokLen - (first - riadok));
+//                              strcpy(first, first + bugLen);
                         }
                         puts(riadok);