#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void swap(int& a,int& b)
{
if(a!=b)
{
a^=b;
b^=a;
a^=b;
}
}
void RANDOMIZED_QUICKSORT(int a[],int left,int right)
{
srand((int) time(0));
swap(a[rand()%(right-left+1)+left],a[right]);
int pivot = a[right],l = left,r = right;
while(l<r)
{
swap(a[l],a[r]);
while(r>l&&a[r]>pivot)
r--;
while(l<r&&a[l]<=pivot)
l++;
}
swap(a[left],a[r]);
if(left<l-1)RANDOMIZED_QUICKSORT(a,left,l-1);
if(r+1<right)RANDOMIZED_QUICKSORT(a,r+1,right);
}
int main()
{
int a[10] = {2,9,71,20,0,212,364,78,-1,55};
RANDOMIZED_QUICKSORT(a,0,9);
for(int i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}