Pagini recente » Cod sursa (job #2371307) | Cod sursa (job #120906) | Cod sursa (job #1524106) | Cod sursa (job #2647664) | Cod sursa (job #3137157)
#include <fstream>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int n,k;
unsigned int v[4000001];
int piv( int st, int dr)
{
int sst=0,ddr=1;
int mid=(st+dr)/2;
swap(v[st],v[mid]);
while(st<dr)
{
if(v[st]>v[dr])
{
swap(v[st],v[dr]);
sst=1-sst;
ddr=1-ddr;
}
st+=sst;
dr-=ddr;
}
return st;
}
void imp( int st,int dr)
{
int mid=piv(st,dr);
if(mid==k)
{
fout<<v[mid]<<" ";
}
else
{
if(k<=mid-1)
imp(st,mid-1);
else
imp(mid+1,dr);
}
}
int main()
{
fin>>n>>k;
for(int i=1;i<=n;i++)
{
fin>>v[i];
}
imp(1,n);
return 0;
}