Pagini recente » Cod sursa (job #2397697) | Cod sursa (job #1584297) | Cod sursa (job #3236830) | Cod sursa (job #150586) | Cod sursa (job #1018916)
#include <cstdio>
#include <cassert>
#include <cstdlib>
#include <ctime>
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 (left < j)
quickSort(left, j);
else
quickSort(i, right);
}
int main(){
f=fopen("sdo.in","r");
g=fopen("sdo.out","w");
assert( fscanf( f, "%d%d", &n, &k ) == 2 );
for (int i=1;i<=n;i++)
assert( fscanf( f, "%d", &arr[i] ) == 1 );
fclose(f);
quickSort(1,n);
fprintf(g,"%d",arr[k]);
fclose(g);
return 0;
}