Pagini recente » Cod sursa (job #725025) | Cod sursa (job #3197788) | Cod sursa (job #1188705) | Cod sursa (job #2278845) | Cod sursa (job #1787949)
#include <stdio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
FILE *fin = fopen("sdo.in", "r");
FILE *fout = fopen("sdo.out", "w");
int n, k, sol;
int v[3000001];
int ver = 1;
void quicksort(int st, int dr){
int aux, i = st, j = dr, p;
p = st + rand()%(dr - st + 1);
int pivot = v[p];
while(i <= j){
while(v[i] < pivot)
i++;
while(v[j] > pivot)
j--;
if(i <= j){
aux = v[i];
v[i] = v[j];
v[j] = aux;
i++;
j--;
}
}
if(st < j && j >= k)
quicksort(st, j);
if(i < dr && j < k)
quicksort(i, dr);
}
int main(){
int i, j;
srand(time(0));
fscanf(fin, "%d %d", &n, &k);
for(i = 1; i <= n; i++)
fscanf(fin, "%d", &v[i]);
quicksort(1, n);
fprintf(fout, "%d", v[k]);
fclose(fin);
fclose(fout);
return 0;
}