/*#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include <stdio.h>
int a[10001];
int n, i, j, temp, min;
int main() {
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=1; i<n; i++) {
min=i;
for (j=i+1; j<=n; j++) {
if(a[min]>a[j])
{
min=j;
}
}
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}
#include <stdio.h>
int a[101];
int n, i, j, temp, min;
int main() {
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=1; i<n; i++) {
min=i;
for (j=i+1; j<=n; j++) {
if(a[min]<a[j])
{
min=j;
}
}
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for (i=1; i<=n; i++)
printf("%d ", a[i]);
return 0;
}
#include <stdio.h>
int a[10001];
int n, i, j, temp, key;
int main() {
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=2; i<=n; i++)
{
key=a[i];
for(j=i-1;j>=1&&a[j]>key;j--)
{
a[j+1]=a[j];
}
a[j+1]=key;
}
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}
#include <stdio.h>
int main()
{
int n[101]={};https://codeup.kr/showsource.php?id=29397260
int a,b,key,j;
scanf("%d",&a);https://codeup.kr/showsource.php?id=29396237
for(int i=1;i<=a;i++)
{
scanf("%d",&n[i]);
}
for(int i=2;i<=a;i++)
{
key=n[i];
for(j=i-1;j>=1&&n[j]<key;j--)
{
n[j+1]=n[j];
}
n[j+1]=key;
}
for(int i=1;i<=a;i++)
printf("%d ",n[i]);
}
quick_sort (int start, int end) // a[start] ~ a[end]의 원소를 정렬하세요
{
}
while(1)
{
}
do{
}while(조건);
#include <stdio.h>
int a[1000000]={};
int temp;
void qs(int s, int e)
{
int pivot=s;
int left=s,right=e+1;
if(s>=e) return ;
//pivot값을 기준으로 왼쪽에는 더 작은 수들, 오른쪽에는 더 큰 수들을 배치
do
{
do
{
left++;
} while(a[pivot]>a[left]);
do
{
right--;
} while(a[pivot]<a[right]);
if(left<right)
{
temp=a[left];
a[left]=a[right];
a[right]=temp;
}
}while(left<right);
//a[right] a[pivot] swap
pivot=right;
qs(s,pivot-1);
qs(pivot+1,e);
}
int main() {
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
qs(1,n);
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}
#include <stdio.h>
int b[100001];
void qs(int s,int e)
{
int p=s;
int l=s,r=e,temp=0;
do
{
if(s>=e)
{
return;
}
do
{
r--;
}while(b[p]<b[r]);
do
{
l++;
}while(b[p]<b[l]);
if(l<r)
{
temp=b[l];
b[l]=b[r];
b[r]=temp;
}
}while(l<r);
p=r;
qs(p-1,s);
qs(p+1,e);
}
int main()
{
int a,e,c,s=1;
scanf("%d",&a);
e=a;
for(int i=1;i<=a;i++)
{
scanf("%d",&b[i]);
}
qs(1,a);
for (int i=1; i<=a; i++)
{
printf("%d\n", b[i]);
}
return 0;
}
#include <stdio.h>
int a[100001]={};
int temp;
void qs(int s, int e)
{
int pivot=s;
int left=s,right=e+1;
if(s>=e) return ;
do
{
do
{
left++;
}while(a[pivot]>a[left]);
do
{
right--;
} while(a[pivot]<a[right]);
if(left<right)
{
temp=a[left];
a[left]=a[right];
a[right]=temp;
}
}while(right>left);
temp=a[right];
a[right]=a[pivot];
a[pivot]=temp;
qs(s,right-1);
qs(right+1,e);
}
int main()
{
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
qs(1,n);
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}
*/
#include <stdio.h>
int a[100001]={};
int temp;
void qs(int s, int e)
{
int pivot=s;
int left=s,right=e+1;
if(s>=e) return ;
do
{
do
{
left++;
}while(a[pivot]>a[left]);
do
{
right--;
} while(a[pivot]<a[right]);
if(left<right)
{
temp=a[left];
a[left]=a[right];
a[right]=temp;
}
}while(right>left);
temp=a[right];
a[right]=a[pivot];
a[pivot]=temp;
qs(s,right-1);
qs(right+1,e);
}
int main()
{
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
qs(1,n);
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}