Pagini recente » Cod sursa (job #45723) | Cod sursa (job #2990646) | Cod sursa (job #2666067) | Cod sursa (job #479221) | Cod sursa (job #1309821)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
long i,n,k;
long long v[3000000],piv,kth;
long poz(long s, long d)
{
piv=v[s];
while(s<d)
{
if(v[s]>v[d])
swap(v[s],v[d]);
else
if(v[s]==piv)
d--;
else
s++;
}
return s;
}
void quick(int s, int d)
{
long p;
if(s<d)
{
p=poz(s,d);
if(p>k)
quick(s,p-1);
else
if(p<k)
{quick(p+1,d); k=k-p+1;}
else
kth=v[p];
}
}
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
f>>v[i];
quick(1,n);
g<<kth;
return 0;
}