Cod sursa(job #731679)

Utilizator LauraBBuf Laura LauraB Data 8 aprilie 2012 21:14:07
Problema Statistici de ordine Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#define NMAX 3000001
using namespace std;

ifstream fin("sdo.in");
ofstream fout("sdo.out");

void QuickSort(int ls, int ld);

int s[NMAX];
int main()
{
	int n, k;
	fin >> n >> k;
	for(int i = 1; i <= n; i++)
		fin >> s[i];
	QuickSort(1, n);
	fout << s[k];
	fin.close();
	fout.close();
	return 0;
}
void QuickSort(int ls, int ld)
{
	int i = ls, j = ld, mijl =(ls + ld) / 2;
	while(i < j)
	{
		while(s[i] < s[mijl]) i++;
		while(s[j] > s[mijl]) j--;
		if(i <= j)
		{
			int aux = s[i];
			s[i] = s[j];
			s[j] = aux;
			i++, j--;
		}
	}
	if(i < ld) QuickSort(i, ld);
	if(j > ls) QuickSort(ls, j);
}