前两个AC,后两个WA
#include<iostream>
#include<algorithm>
using namespace std;
int a[500500], n, k;
void sort(int* a, int l, int r);
int main()
{
cin >> n >> k;
for (int i = 0; i < n; i++)
cin >> a[i];
sort(a, 0, (n-1));
cout << a[k];
return 0;
}
void sort(int* a, int l, int r)
{
if (l >= r)return;
int newl = l, newr = r, flag = a[(l + r) / 2], tmp;
do {
while (a[newl] < flag)newl++;
while (a[newr] > flag)newr--;
if (newl <= newr)
{
tmp = a[newl];
a[newl] = a[newr];
a[newr] = tmp;
newl++;
newr--;
}
} while (newl <= newr);
if (newr > l)sort(a, l, newr);
if (newl < r)sort(a, newl, r);
}