Cod sursa(job #385878)
Utilizator | Data | 23 ianuarie 2010 18:17:30 | |
---|---|---|---|
Problema | Statistici de ordine | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.7 kb |
#include<stdio.h>
int a[3000010],k,n;
void qsort (int st,int dr)
{
int i=st,j=dr,piv=a[(st+dr)/2],aux;
do
{
while(a[i]<piv)
++i;
while(piv<a[j])
--j;
if(i<=j)
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
++i;
--j;
}
}
while(i<=j);
if(st<=k && k<=j)
qsort(st,j);
else if (i<=k && k<=dr)
qsort(i,dr);
}
int main ()
{
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
int i;
scanf("%d%d",&n,&k);
for(i=1;i<=n;++i)
scanf("%d",&a[i]);
qsort (1,n);
printf("%d",a[k]);
return 0;
}