Pagini recente » Cod sursa (job #2071203) | Cod sursa (job #1975408) | Cod sursa (job #652696) | Cod sursa (job #1970823) | Cod sursa (job #2540443)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("sdo.in");
ofstream fout("sdo.out");
int v[3000010],n,pivot,st,dr,i,k;
int poz(int st, int dr){
int i=st,j=dr,aux;
int di=0,dj=-1;
while(i<j){
if(v[i]>v[j]){
swap(v[i],v[j]);
aux=di;
di=-dj;
dj=-aux;
}
i+=di;
j+=dj;
}
return i;
}
int sortare(int st, int dr, int k){
if(st<dr){
pivot=poz(st,dr);
if(pivot==k)
return v[k];
if(pivot>k)
sortare(1,pivot-1,k);
else
sortare(pivot+1,n,k);
}
else
return v[st];
}
int main(){
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>v[i];
fout<<sortare(1,n,k);
return 0;
}