Pagini recente » Istoria paginii runda/moisil2017-10 | Istoria paginii runda/pregatire_sibiu2/clasament | Cod sursa (job #621825) | Cod sursa (job #2069223) | Cod sursa (job #455746)
Cod sursa(job #455746)
#include<fstream.h>
long a[3000009],n,k;
int schimb(long i,long j)
{
long aux=a[i];
a[i]=a[j];
a[j]=aux;
}
int sort(long i,long j)
{
long s=i,d=j,piv=a[(i+j)>>1];
while(s<=d)
{
while (a[s] < piv) s ++;
while (a[d] > piv) d --;
if(s <= d)
{
schimb(s,d);
s++;
d--;
}
}
if( (i < d) && (i <= k) && (k <= d)) sort(i,d);
if( (s < j) && (s <= k) && (k <= j)) sort(s,j);
}
int main()
{
long i;
//freopen("sdo.in", "r", stdin);
//freopen("sdo.out", "w", stdout);
ifstream f("sdo.in");
ofstream g("sdo.out");
// scanf("%ld %ld", &n, &k);
f>>n>>k;
for(i=1;i<=n;i++)
// scanf("%ld", &a[i]);
f>>a[i];
sort(1,n);
// printf("%ld \n", a[k]);
g<<a[k];
return 0;
}