Go to diff to previous submission
--- 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); } }