fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. int main()
  5. {
  6. std::vector<int> v1;
  7. std::vector<int> v2;
  8. std::vector<int> v;
  9.  
  10. v1.push_back(0);v1.push_back(1);v1.push_back(2);v1.push_back(4);
  11. v1.push_back(6);v1.push_back(7);
  12. v1.push_back(8);v1.push_back(9);v1.push_back(10);v1.push_back(11);
  13. v1.push_back(12);v1.push_back(13);
  14.  
  15. v2.push_back(2);v2.push_back(4);v2.push_back(6);v2.push_back(8);
  16. v2.push_back(10);v2.push_back(12);v2.push_back(13);
  17.  
  18. enum { unmatched, once, many } state = unmatched;
  19. for (int i = 0, j = 0; i < v1.size() && j < v2.size(); ++i)
  20. if (v1[i] == v2[j])
  21. if (state == unmatched)
  22. {
  23. ++j;
  24. state = once;
  25. }
  26. else if (state == once)
  27. {
  28. v.push_back(v2[j - 1]);
  29. v.push_back(v2[j++]);
  30. state = many;
  31. }
  32. else
  33. v.push_back(v2[j++]);
  34. else
  35. state = unmatched;
  36. for (int i = 0; i < v.size(); ++i)
  37. std::cout << v[i] << '\n';
  38. }
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
2
4
6
12
13