Cod sursa(job #402034)

Utilizator sorecau_catalinSorecau Catalin sorecau_catalin Data 23 februarie 2010 12:46:57
Problema Statistici de ordine Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
using namespace std;

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

void quickSort( int vect[], int stanga, int dreapta );
int a[3000005], n, k;
int main()
{
	fin >> n >> k;
	for ( int i = 1; i <= n; ++i )
		fin >> a[i];
	int ls, dr;
	ls = 0; dr = n;
	quickSort(a, ls, dr);
	fout << a[k];
	return 0;
}

void quickSort( int vect[], int stanga, int dreapta )
{
	int i = stanga, j = dreapta;
	int aux;
	int mij = vect[(dreapta+stanga)/2];
	while ( i <= j )
	{
		while( vect[i] < mij )
			i++;
		while ( vect[j] > mij )
			j--;
		if ( i <= j )
		{
			aux = vect[i];
			vect[i] = vect[j];
			vect[j] = aux;
			i++;
			j--;
		}
	}
	if ( stanga < j )
		quickSort( vect, stanga, j );
	if ( i < dreapta )
		quickSort( vect, i, dreapta );
}