#include <bits/stdc++.h> using namespace std; #define M 8 #define N 6 // void merge(int*, int , int, int); // void mergesort(int arr[], int low, int high){ // if(low>=high) // return; // int mid = (low+high)/2; // mergesort(arr, low, mid); // mergesort(arr, mid+1, high); // merge(arr, low, mid, high); // } // void merge(int arr[], int low, int mid, int high){ // int n1 = mid-low+1, n2 = high-mid; // int left[n1], right[n2]; // for(int i = 0; i<n1; i++) // left[i] = arr[low+i]; // for(int j = 0; j<n2; j++) // right[j] = arr[mid+1+j]; // int i = 0, j = 0, k = low; // while(i<n1 && j<n2){ // if(left[i] > right[j]){ // arr[k++] = right[j++]; // } // else // arr[k++] = left[i++]; // } // while(i < n1) // arr[k++] = left[i++]; // while(j<n2) // arr[k++] = right[j++]; // } // void intersection(int a[], int b[]){ // int j=0, i=0; // vector<int> v; // while(i<M && j<N){ // if(a[i]==a[i-1] && i!=0){ // i++; // continue; // } // if(a[i]<b[j]){ // i++;continue; // } // if(a[i]>b[j]){j++; // continue; // } // if(a[i]==b[j]){ // v.push_back(a[i]); // i++;j++; // } // } // for(auto x: v) // cout<<x<<" "; // } // void unions(int a[], int b[]){ // int i= 0, j = 0; // vector<int> v; // while(i<M && j<N){ // if(i!=0 && a[i]==a[i-1]){ // i++;continue; // } // if(b[j]==b[j-1] && j!=0){ // j++;continue; // } // if(a[i]<b[j]){ // v.push_back(a[i]); // i++; // } // else if(a[i]>b[j]){ // v.push_back(b[i]); // j++; // } // else{ // v.push_back(a[i]); // i++; j++; // } // } // while(i<M){ // v.push_back(a[i]); // i++; // } // while(j<N){ // v.push_back(b[j]); // j++; // } // for(auto x: v) // cout<<x<<" "; // } void print(int arr[]){ for(int i = 0; i< M; i++) cout<<arr[i]<<" "; } void swap(int *a, int *b){ int temp = *a; *a = *b; *b = temp; } int hoarspartition(int arr[],int l, int h){ // swap(&arr[index], &arr[0]); int pivot = arr[l]; int i=l-1, j=h+1; while(true){ do{ i++; }while(arr[i]<pivot); do{ j--; }while(arr[j]>pivot); if(i>=j) return j; swap(&arr[i], &arr[j]); } } void quicksort(int arr[], int l, int h){ if(l<h){ int p = hoarspartition(arr, l, h); quicksort(arr, l, p); quicksort(arr, p+1, h); } } // void lumotopartion(int arr[], int index){ // swap(&arr[index], &arr[M-1]); // int pivot = arr[M-1]; // int i = -1; // for(int j= 0; j<M; j++){ // if(arr[j]<pivot){ // i++; // swap(&arr[i], &arr[j]); // } // } // swap(&arr[i+1], &arr[M-1]); // } int main(){ int arr[M]; for(int i = 0; i< M; i++){ cin>>arr[i]; } // int index; //cin>>index; // lumotopartion(arr, index); // hoarspartition(arr, index)<<endl; // mergesort(arr, 0, N-1); quicksort(arr, 0, M-1); print(arr); // unions(arr, b); }