Cod sursa(job #1721435)

Utilizator Vbs96Vitelaru Sebastian Vbs96 Data 25 iunie 2016 17:29:41
Problema Statistici de ordine Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>

int  k, n,v[3000001];

void qsrt(int inf, int sup)
{
	int i, j, t, x;
	i = inf;
	j = sup;
	x = v[i + rand() % (j-i+1)];
	do{
		while (i < sup && v[i] < x) i++;
		while (j > inf && v[j] > x) j--;
		if (i <=j){
			t = v[i];
			v[i] = v[j];
			v[j] = t;
			i++;
			j--;
		}
	} while (i < j);
	if (i < sup) qsrt(i, sup);
	if (j > inf) qsrt(inf, j);

}
int main()
{
	int i,j,ok;
	srand(time(NULL));
	freopen("sdo.in", "r", stdin);
	freopen("sdo.out", "w", stdout);
	scanf("%d %d",&n, &k);
	for (i = 1; i <= n; i++)
		scanf("%d", v + i);
	
	qsrt(1, n);

	printf("%d", v[k]);

	return 0;
}