Pagini recente » Istoria paginii utilizator/murarugeorge | Istoria paginii utilizator/stefaniatudor | Profil HazzLiuu | Istoria paginii utilizator/ultratdk | Cod sursa (job #1036342)
#include<iostream>
#include<fstream>
using namespace std;
int v[300001];
void part(int p,int u,int &q)
{
int i=p,j=u,m;
m=v[(i+j)/2];
do
{
while(v[i]<m) i++;
while(v[j]>m) j--;
if(i<=j)
{
swap(v[i],v[j]);
if(v[j]==m) q=j;
if(v[i]==m) q=i;
i++;j--;
}
}while(i<j);
}
void qsort(int p,int u)
{
if (u-p+1<=1) return;
else
{
int q=(p+u)/2;
part(p,u,q);
qsort(p,q-1);
qsort(q+1,u);
}
}
int main()
{
ifstream f("sdo.in");
ofstream g("sdo.out");
int i,n,k;
f>>n>>k;
for(i=1;i<=n;i++) f>>v[i];
qsort(1,n);
g<<v[k];
f.close();g.close();
return 0;
}