Source code for submission s1349

Go to diff to previous submission

bugs.cpp

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cassert>
  4. #include <vector>
  5. #include <stack>
  6. #include <cstdio>
  7. #include <deque>
  8.  
  9. using namespace std;
  10.  
  11. int main()
  12. {
  13. while(true)
  14. {
  15. int T;
  16. char bugc[1001];
  17. if(scanf("%d %s", &T, bugc)!=2) break;
  18. getchar();
  19. getchar();
  20. string bug(bugc);
  21. deque<int> a;
  22. for(int i=0; i<T; ++i)
  23. {
  24. char c;
  25. int current=0;
  26. while((c=getchar()) !='\n')
  27. {
  28. if(c==bug[current])
  29. {
  30. current++;
  31. if(current >= bug.size())
  32. {
  33. if(a.empty())
  34. {
  35. current=0;
  36. }
  37. else
  38. {
  39. current = a.back(); a.pop_back();
  40. }
  41. }
  42. }
  43. else if(c==bug[0])
  44. {
  45. a.push_back(current);
  46. current = 1;
  47. }
  48. else
  49. {
  50. for(deque<int>::iterator cr=a.begin(); cr!=a.end(); ++cr)
  51. {
  52. cout << bug.substr(0, *cr);
  53. }
  54. cout << bug.substr(0,current);
  55. a.clear();
  56. putchar(c);
  57. current = 0;
  58. }
  59. }
  60. for(deque<int>::iterator cr=a.begin(); cr!=a.end(); ++cr)
  61. {
  62. cout << bug.substr(0, *cr);
  63. }
  64. cout << bug.substr(0,current);
  65. a.clear();
  66. putchar(c);
  67. current = 0;
  68. //putchar('\n');
  69. }
  70. }
  71. return 0;
  72. }
  73.  
  74.  

Diff to submission s1333

bugs.cpp

--- c4.s1333.cteam038.bugs.cpp.0.bugs.cpp
+++ c4.s1349.cteam038.bugs.cpp.0.bugs.cpp
@@ -17,4 +17,5 @@
                 if(scanf("%d %s", &T, bugc)!=2) break;
                 getchar();
+                getchar();
                 string bug(bugc);
                 deque<int> a;