Source code for submission s1031

Go to diff to previous submission

bugs.c

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4.  
  5. int main(void){
  6. int N;
  7. int rozdiel;
  8. char riadok[2000005];
  9. char vzorka[1005];
  10. int dlzkaVzorka,dlzkaRiadok;
  11. char *x;
  12.  
  13. while(scanf("%d %s ",&N, vzorka) == 2){
  14. while(N--){
  15. dlzkaVzorka = strlen(vzorka);
  16. fgets(riadok,2000005,stdin);
  17. dlzkaRiadok = strlen(riadok);
  18. if(!strstr(riadok,vzorka)){
  19. printf("%s",riadok);
  20. }
  21. else{
  22. while(1){
  23. x = strstr(riadok,vzorka);
  24. rozdiel = x - riadok;
  25. memmove(x,x + dlzkaVzorka,dlzkaRiadok - (rozdiel + dlzkaVzorka) + 1);
  26. dlzkaRiadok = strlen(riadok);
  27. if(!strstr(riadok,vzorka)){
  28. printf("%s",riadok);
  29. break;
  30. }
  31. }
  32. }
  33. }
  34. }
  35.  
  36. return 0;
  37. }
  38.  

Diff to submission s846

bugs.c

--- c4.s846.cteam074.bugs.c.0.bugs.c
+++ c4.s1031.cteam074.bugs.c.0.bugs.c
@@ -3,45 +3,32 @@
 #include<stdlib.h>
 
-
-        char riadok[2000005];
-        char vzorka[1005];
-        
-int kontrola(int i,int dlzka){
-        int x;
-        
-        for(x=0;x<dlzka;x++){
-                if(riadok[i-dlzka+x+1] != vzorka[x]){
-                        return i;
-                }
-        }
-        return (i-dlzka);
-}
-
 int main(void){
         int N;
-        int dlzkaVzorka;
-        char x;
-        int i,u;
+        int rozdiel;
+        char riadok[2000005];
+        char vzorka[1005];
+        int dlzkaVzorka,dlzkaRiadok;
+        char *x;
         
-        while((scanf("%d %s ",&N, vzorka) == 2)){
-                dlzkaVzorka = strlen(vzorka);
-                for(u=0;u<N;u++){
-                        i = 0;
-                        while(1){
-                                scanf("%c",&x);
-                                if(x == '\n'){
-                                        riadok[i] = x;
-                                        riadok[i+1] = '\0';
-                                        break;
-                                }
-                                else{
-                                        riadok[i] = x;
-                                        if(x == vzorka[dlzkaVzorka - 1]){
-                                                i = kontrola(i,dlzkaVzorka);
+        while(scanf("%d %s ",&N, vzorka) == 2){
+                while(N--){
+                        dlzkaVzorka = strlen(vzorka);
+                        fgets(riadok,2000005,stdin);
+                        dlzkaRiadok = strlen(riadok);
+                        if(!strstr(riadok,vzorka)){
+                                printf("%s",riadok);
+                        }
+                        else{
+                                while(1){
+                                        x = strstr(riadok,vzorka);
+                                        rozdiel = x - riadok;
+                                        memmove(x,x + dlzkaVzorka,dlzkaRiadok - (rozdiel + dlzkaVzorka) + 1);
+                                        dlzkaRiadok = strlen(riadok);
+                                        if(!strstr(riadok,vzorka)){
+                                                printf("%s",riadok);
+                                                break;
                                         }
-                                        i++;
                                 }
                         }
-                        printf("%s",riadok);
                 }
         }