Cod sursa(job #436675)

Utilizator sorecau_catalinSorecau Catalin sorecau_catalin Data 8 aprilie 2010 19:46:42
Problema Statistici de ordine Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define DIM 3000005
using namespace std;

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

int a[DIM], k, n;
void Sort(int stanga, int dreapta);

int main()
{
	int ls, dr;
	fin >> n >> k;
	for ( int i = 1; i <= n; i++)
		fin >> a[i];
	ls = 0; dr = n;
	Sort(ls,dr);
	fout<<a[k];
	fout.close();
	fin.close();
	return 0;
	
}

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