fork download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. int n,k;
  7. cin >> n >> k;
  8. int position[n+1],arr[n];
  9.  
  10. for(int i=0; i<n; i++){
  11. cin >> arr[i];
  12. position[arr[i]] = i;
  13. }
  14. int idx = 0,num=n;
  15. while(k>0) {
  16. if(position[num] != idx){
  17. //swap the arr elements
  18. int a = arr[idx];
  19. arr[idx] = num;
  20. arr[position[num]] = a;
  21.  
  22. //swap the positions
  23. position[a] = position[num];
  24. position[num] = idx;
  25. k--;
  26. }
  27. idx++;
  28. num--;
  29. }
  30.  
  31. for(int i=0; i<n; i++) {
  32. cout << arr[i] << " " ;
  33. }
  34. cout << endl;
  35.  
  36. return 0;
  37. }
Success #stdin #stdout 0s 4232KB
stdin
5 2
3 4 1 2 5
stdout
5 4 3 2 1