Source code for submission s930

bugs.cpp

  1. #include <cstdio>
  2. #include <string>
  3. #include <vector>
  4. #include <cstring>
  5.  
  6. using namespace std;
  7. int main(void){
  8. char bug[1024];
  9. int d;
  10. char k;
  11. while (scanf("%d %1000s%c", &d, bug, &k)==3){
  12.  
  13. vector<int> intS;
  14. char c = 0;
  15. int bp = 0;
  16. int blen = strnlen(bug, 1020);
  17.  
  18. for (int i = 0; i < d; i++){
  19. bp = 0;
  20. while((c = getchar())!= '\n'){
  21. if (c==bug[bp]){
  22. // printf("bp=%d; bug[bp]=%c;\n", bp, bug[bp]);
  23. bp++;
  24. if (bp == blen){
  25. if (intS.empty()){
  26. bp=0;
  27. } else {
  28. bp=intS.back();
  29. intS.pop_back();
  30. }
  31. }
  32. }
  33. else{
  34. if (c == bug[0]){
  35. intS.push_back(bp);
  36. bp = 1;
  37. }
  38. else{
  39. intS.push_back(bp);
  40. for (vector<int>::iterator it=intS.begin();
  41. it!=intS.end(); it++){
  42. for (int jk = 0 ; jk <*it; jk++)
  43. printf("%c", bug[jk]);
  44. }
  45. intS.clear();
  46. bp = 0;
  47. printf("%c",c);
  48. }
  49. }
  50.  
  51.  
  52. }
  53. intS.push_back(bp);
  54. for (vector<int>::iterator it=intS.begin();
  55. it!=intS.end(); it++){
  56. for (int jk = 0 ; jk <*it; jk++)
  57. printf("%c", bug[jk]);
  58. }
  59. intS.clear();
  60.  
  61.  
  62. printf("\n");
  63.  
  64. }
  65.  
  66. }
  67.  
  68.  
  69. return 0;
  70. }
  71.