Advertisement
Dzham

Untitled

Mar 11th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. using iter = std::vector<int>::iterator;
  6.  
  7. iter partition(iter begin, iter end, int predicut) {
  8. while (begin != end) {
  9. while (predicut > *begin) {
  10. ++begin;
  11. if (begin == end) {
  12. return begin;
  13. }
  14. }
  15. do {
  16. --end;
  17. if (begin == end) {
  18. return begin;
  19. }
  20. } while (predicut <= *end);
  21. std::swap(*begin, *end);
  22. ++begin;
  23. }
  24. return begin;
  25. }
  26.  
  27. int main() {
  28. int a, b, pr;
  29. std::vector<int> v;
  30. std::cin >> a;
  31. if (a != 0) {
  32. for (int i = 0; i < a; i++) {
  33. std::cin >> b;
  34. v.push_back(b);
  35. }
  36. std::cin >> pr;
  37. iter end = partition(v.begin(), v.end(), pr);
  38. int s = end - v.begin();
  39. std::cout << s << '\n';
  40. std::cout << a - s;
  41. } else {
  42. std::cin >> b;
  43. std::cout << 0 << '\n';
  44. std::cout << 0;
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement