Pagini recente » Cod sursa (job #2214661) | Cod sursa (job #2242538) | Cod sursa (job #1783539) | Cod sursa (job #2941041) | Cod sursa (job #633360)
Cod sursa(job #633360)
#include <fstream>
using namespace std;
ifstream in("sdo.in");
ofstream out("sdo.out");
const int N=3000010;
int n,k,v[N];
void citire(){
int i;
in>>n>>k;
for(i=1;i<=n;i++){
in>>v[i];
}
}
void schimba(int x,int y){
int aux;
aux=v[x];
v[x]=v[y];
v[y]=aux;
}
void Partition(int st,int dr){
int i=st,j=dr,pivot=v[st];
while(i<j){
while(v[i]<=pivot && i<=dr && j>i)
++i;
while(v[j]>pivot && j>=st && j>=i)
--j;
if(j>i)
schimba(i,j);
}
schimba(j,st);
if(j==k){
out<<v[j];
return;
}
if(k<j)
Partition(st,j-1);
else{
Partition(j+1,dr);
}
}
int main(){
citire();
Partition(1,n);
return 0;
}