Pagini recente » Cod sursa (job #1482424) | Cod sursa (job #101278) | Cod sursa (job #2593272) | Cod sursa (job #2378899) | Cod sursa (job #1018921)
#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)
return quickSort(left,j);
else
{
if (left < j)
quickSort(left, j);
if (i < right)
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;
}