1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <cstdio>
using namespace std;
 
void QuickSort(int * mArray, int left, int right)
{
    if (left == right) { return; }
 
    /* Integer */
    int mleft = left;
    int mright = right;
    int mPivot = mArray[left];
    
    while (left < right)
    {
        while ((mArray[right] >= mPivot) && (left < right)) { right--; }
        if (left != right) { mArray[left] = mArray[right]; } left++;
 
        while ((mArray[left] <= mPivot) && (left < right)) { left++; }
        if (left != right) { mArray[right] = mArray[left]; right--; }
    }
 
    mArray[left] = mPivot;
    mPivot = left;
    left = mleft;
    right = mright;
 
    if (left < mPivot) { QuickSort(mArray, left, mPivot - 1); }
    if (right > mPivot) { QuickSort(mArray, mPivot + 1, right); }
}
 
int mArray[5000001];
 
int main(void)
{
    /* Integer */
    int num1 = 0, num2 = 0;
    scanf("%d %d", &num1, &num2);
 
    for (int count = 0; count < num1; count++) { scanf("%d", &*(mArray + count)); }
    QuickSort(mArray, 0, num1-1);
 
    printf("%d\n"*(mArray + (num2 - 1)));
 
    return 0;
}
cs

https://www.acmicpc.net/problem/11004

시간 줄일려고 입력도 scanf로 받는데;;;;
내 자존심 때문에 알고리즘 헤더파일 쓰기 싫다.