Pagini recente » Cod sursa (job #1859905) | Cod sursa (job #1163659) | Cod sursa (job #1236177) | Cod sursa (job #2583360) | Cod sursa (job #1018922)
#include <cstdio>
#include <cassert>
#include <cstdlib>
FILE *f,*g;
#define MAX_N 3000000
int n, k, arr[MAX_N];
void quickSort(long left, long right){
long i = left, j = right;
long tmp;
long pivot = arr[left + rand() % ( right - left + 1 )];
while (i <= j)
{
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j)
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}
if (k<=j)
quickSort(left,j);
else if(k>=i) quickSort(i,right);
}
int main(){
f=fopen("sdo.in","r");
g=fopen("sdo.out","w");
fscanf(f,"%d%d",&n,&k);
for (int i=1;i<=n;i++)
fscanf(f,"%d",&arr[i]);
fclose(f);
quickSort(1,n);
fprintf(g,"%d",arr[k]);
fclose(g);
return 0;
}