Cod sursa(job #659779)

Utilizator an_drey_curentandreycurent an_drey_curent Data 10 ianuarie 2012 23:18:15
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
long int v[3000001];
void quicksort(long int stanga,long int dreapta,long int sdo)
{
	long int mijloc=v[(stanga+dreapta)/2];
	long int i=stanga,j=dreapta;
	while(i<=j)
	{
		while(v[i]<mijloc)
			i++;
		while(v[j]>mijloc)
			j--;
		if(i<=j)
		{
			swap(v[i],v[j]);
			i++;j--;
		}
	}
	if(sdo>=stanga&&sdo<=j)
	if(j>stanga)
		quicksort(stanga,j,sdo);
	if(sdo>=i&&sdo<=dreapta)
	if(i<dreapta)
		quicksort(i,dreapta,sdo);
}
int main()
{
	freopen("sdo.in","r",stdin);
	freopen("sdo.out","w",stdout);
	long int n,k,sdo,i;
	scanf("%ld",&n);
	scanf("%ld",&k);
	for(i=1;i<=n;i++)
		scanf("%ld",&v[i]);
	quicksort(1,n,k);
	printf("%ld",v[k]);
	return 0;
}