fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. mt19937_64 rd(time(0));
  5. int rand(int L, int R){
  6. return L + rd() % (R - L + 1);
  7. }
  8.  
  9. void stooge_sort(int* arr, int left, int right){
  10. if(arr[left] < arr[right]) swap(arr[left], arr[right]);
  11.  
  12. if(right - left + 1 > 2){
  13. int value = (right - left + 1)/3;
  14. stooge_sort(arr, left + value, right);
  15. stooge_sort(arr, left, right - value);
  16. stooge_sort(arr, left + value, right);
  17. }
  18. }
  19.  
  20. bool isSorted(int* arr, int length){
  21. for(int i = 1; i < length; i++){
  22. if(arr[i - 1] < arr[i]) return 0;
  23. }
  24.  
  25. return 1;
  26. }
  27.  
  28. int n, arr[10000];
  29.  
  30. int main(){
  31. ios_base::sync_with_stdio(0);
  32. cin.tie(0); cout.tie(0);
  33.  
  34. cin >> n;
  35. for(int i = 0; i < n; i++) cin >> arr[i];
  36.  
  37. while(!isSorted(arr, n)){
  38. stooge_sort(arr, 0, n - 1);
  39. }
  40.  
  41. for(int i = 0; i < n; i++) cout << arr[i] << ' ';
  42.  
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0.01s 5272KB
stdin
Standard input is empty
stdout
Standard output is empty