Pagini recente » Cod sursa (job #1191287) | Cod sursa (job #64257) | Cod sursa (job #2359319) | Cod sursa (job #2688851) | Cod sursa (job #1419835)
#include <stdio.h>
#include <algorithm>
FILE *f=fopen("sdo.in","r");
FILE *g=fopen("sdo.out","w");
int a[3000001];
int part(int l, int r, int k){
int i=l;
int j=r;
int x=a[(l+r)/2];
while(i<j){
while (a[i]<x)i++;
while (a[j]>x)j--;
if(i<=j){
std::swap(a[i],a[j]);
i++; j--;
}
}
if(j>=l&&j<k)return part(j+1,r,k);
if(j<=r&&j>k)return part(l,j,k);
return a[k];
}
int main(){
int n, k;
fscanf(f,"%d%d",&n,&k);
for(int i=1;i<=n;i++){
fscanf(f,"%d",&a[i]);
}
fprintf(g,"%d",part(1,n,k));
return 0;
}