Cod sursa(job #543175)

Utilizator balakraz94abcd efgh balakraz94 Data 27 februarie 2011 17:44:24
Problema Statistici de ordine Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<cstdio>
#define L 300002
using namespace std;

int n,c;
int a[L];

int divide(int,int);
void quick(int,int);

void quick(int p, int q)
{
	int m=divide(p,q);
	if(m-1>p) quick(p,m-1);
	if(m+1<q) quick(m+1,q);
}

int divide(int p,int q)
{
	int st=p, dr=q, x=a[p];
	
	while(st<dr)
	{
		while(st<dr && a[dr]>=x) dr--;
		a[st]=a[dr];
		while(st<dr && a[st]<=x) st++;
		a[dr]=a[st];
	}
	a[st]=x;
	return st;
}

void citeste()
{
	freopen("sdo.in","r",stdin);
	scanf("%d%d",&n,&c);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	fclose(stdin);
}


void afiseaza()
{
	freopen("sdo.out","w",stdout);
	printf("%d",a[c]);
	fclose(stdout);
}

int main()
{
	citeste();
	quick(1,n);
	afiseaza();
	return 0;
}