Pagini recente » Cod sursa (job #724928) | Cod sursa (job #376725) | Cod sursa (job #1599632) | Cod sursa (job #2346128) | Cod sursa (job #1784169)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("sdo.in");
ofstream out ("sdo.out");
int k;
int v[1000010];
int piv(int st,int dr,int p)
{
int i=st,j=dr,val=v[p];
while(i<j)
{
while(v[i]<val)
i++;
while(v[j]>val)
j--;
if(i<j && v[i]!=v[j])
swap(v[i],v[j]);
else
return j;
}
}
void qsort(int st,int dr)
{
int p=k;
p=piv(st,dr,p);
if(p==k)
{
out<<v[p];
return;
}
if(p<k)
qsort(p+1,dr);
else
qsort(st,p-1);
}
int main()
{
int n,i;
in>>n>>k;
for(i=1; i<=n; i++)
in>>v[i];
qsort(1,n);
return 0;
}