fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. void tabswap(vector<int> &a, int x, int &k, int &m) {
  7. int t = 0;
  8. k = -1;
  9. m = a.size();
  10. while (t < m) {
  11. if (a[t] > x) {
  12. m--;
  13. swap (a[t], a[m]);
  14. }
  15. else {
  16. if (a[t] < x) {
  17. k++;
  18. swap(a[k], a[t]);
  19. }
  20. t++;
  21. }
  22. }
  23. }
  24.  
  25. int main() {
  26. int n;
  27. cin >> n;
  28.  
  29. vector <int> a(n, 0);
  30. for (int i = 0; i < n; i++) {
  31. cin >> a[i];
  32. }
  33. int k = 0;
  34. int m = 0;
  35. int x;
  36. cin >> x;
  37.  
  38. tabswap(a, x, k, m);
  39.  
  40. for(int i = 0; i < n; i++) {
  41. cout << a[i] << " ";
  42. }
  43. cout << endl;
  44.  
  45. cout << "k = " << k << " m = " << m << endl;
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0s 5268KB
stdin
8 20 42 18 15 9 30 20 10
15
stdout
10 9 15 18 30 20 42 20 
k =  1 m =  3