1+ #include < bits/stdc++.h>
2+ using namespace std ;
3+
4+ void print (long long arr[],long long n)
5+ {
6+ for (int i=0 ;i<n;i++)
7+ cout<<arr[i]<<" " ;
8+ }
9+
10+ pair<long long ,long long > partition3 (long long arr[],long long l,long long r )
11+ {
12+ pair <long long ,long long > par;
13+ long long i=l,j,k=l,p=r;
14+ while (i<p)
15+ {
16+ if (arr[i]<arr[r])
17+ swap (arr[i++],arr[k++]);
18+ else if (arr[i]==arr[r])
19+ swap (arr[i],arr[--p]);
20+ else
21+ i++;
22+ }
23+ // print(arr,r+1);
24+ // cout<<endl;
25+ // cout<<k<<" "<<p<<endl;
26+ long long temp=arr[r],end;
27+ for (i=p-1 ,j=r;i>=k;i--,j--)
28+ arr[j]=arr[i];
29+ end=j;
30+ for (j;j>=k;j--)
31+ arr[j]=temp;
32+ // print(arr,r+1);
33+ // cout<<endl<<end;
34+ par=make_pair (k,end);
35+ return par;
36+ }
37+
38+ void sort (long long arr[],long long l,long long r)
39+ {
40+ if (l<r)
41+ {
42+ int k=l+rand ()%(r-l+1 );
43+ swap (arr[l],arr[k]);
44+ pair<long long ,long long > par=partition3 (arr,l,r);
45+ sort (arr,l,par.first -1 );
46+ sort (arr,par.second +1 ,r);
47+ }
48+ }
49+ bool checkSorted (long long arr[],long long n)
50+ {
51+ int i;
52+ for (i=0 ;i<n-1 ;i++)
53+ if (arr[i]>arr[i+1 ])
54+ return false ;
55+ return true ;
56+ }
57+
58+ int main ()
59+ {
60+ long long n,arr[100010 ];
61+ cin>>n;
62+ for (int i=0 ;i<n;i++)
63+ cin>>arr[i];
64+ sort (arr,0 ,n-1 );
65+ print (arr,n);
66+ // partition3(arr,0,n-1);
67+ return 0 ;
68+ }
69+
70+ // int main()
71+ // {
72+ // long long n,ini[1000],temp,arr[1000],i;
73+ // n=100;
74+ // while(1)
75+ // {
76+ // srand(time(0));
77+ // for(i=0;i<n;i++)
78+ // {
79+ // temp=rand()%4;
80+ // arr[i]=temp;
81+ // ini[i]=temp;
82+ // }
83+ // sort(arr,0,n-1);
84+ // if(checkSorted(arr,n)==false)
85+ // {
86+ // print(ini,n);
87+ // cout<<endl;
88+ // print(arr,n);
89+ // return 0;
90+ // }
91+ // }
92+ // return 0;
93+ // }
0 commit comments