Source code for submission s1084

bugs.c

  1. #include <stdio.h>
  2.  
  3. int nLines, bugStringLen, lineLen, i, j, idx;
  4. char bugString[1002], line[2000005], lineOut[2000005], flush;
  5.  
  6. void attempt() {
  7. int w;
  8. int tmpIdx = 0, tmpBugIdx = 1;
  9. char lineTmp[1002];
  10. lineTmp[tmpIdx] = line[i];
  11. /* printf("*** lineTmp[0]=%c\n", lineTmp[0]);
  12.  
  13. printf("***Running attempt\n");*/
  14. while(1) {
  15. tmpIdx++; i++;
  16. lineTmp[tmpIdx] = line[i];
  17. /* printf("*** i=%d line[i]=%c tmpBugIdx=%d bugString[tmpBugIdx]=%c %d\n",
  18. i, line[i], tmpBugIdx, bugString[tmpBugIdx], bugStringLen);*/
  19. if(line[i] == bugString[tmpBugIdx]) {
  20. /* printf("***xxx\n");*/
  21. tmpBugIdx++;
  22. } else {
  23. if(line[i] == bugString[0]){
  24. attempt();
  25. } else {
  26. /* lineOut[idx] = lineTmp[0];*/
  27. for(w = 0; w <= tmpIdx; w++) {
  28.  
  29. lineOut[idx] = lineTmp[w];
  30. idx++;
  31. }
  32. return;
  33. }
  34. }
  35. if(tmpBugIdx == bugStringLen) {
  36. /* printf("***if(tmpBugIdx + 1 == bugStringLen)\n");*/
  37. return;
  38. }
  39. }
  40. }
  41.  
  42. int main() {
  43. /* printf("\n\n\n\n\n");*/
  44. while(scanf("%d %s", &nLines, &bugString) == 2) {
  45. while(1) {
  46. scanf("%c", &flush);
  47. if(flush == '\n')
  48. break;
  49. }
  50. bugStringLen = strlen(bugString);
  51. while(nLines--) {
  52. idx = 0;
  53. j = 0;
  54.  
  55. while(1) {
  56. scanf("%c", &line[j]);
  57. if(line[j] == '\n') {
  58. line[j] = 0;
  59. break;
  60. }
  61. j++;
  62. }
  63. lineLen = strlen(line);
  64.  
  65. if(bugStringLen == 1) {
  66. for(i = 0; i < lineLen; i++) {
  67. if(line[i] == bugString[0]) continue;
  68. lineOut[idx] = line[i];
  69. idx++;
  70. }
  71. } else {
  72. for(i = 0; i < lineLen; i++) {
  73. if(line[i] == bugString[0]) {
  74. /* printf("Attempt call from main\n");*/
  75. attempt();
  76. } else {
  77. lineOut[idx] = line[i];
  78. idx++;
  79. }
  80.  
  81. }
  82. }
  83. lineOut[idx] = 0;
  84. printf("%s\n", lineOut);
  85. }
  86. }
  87. return 0;
  88. }
  89.