Pagini recente » Cod sursa (job #2364389) | Cod sursa (job #358896) | Cod sursa (job #2456897) | Cod sursa (job #1859122) | Cod sursa (job #1482014)
#include <stdio.h>
#include <stdlib.h>
int v[3000000];
int main(){
FILE*fin=fopen("sdo.in", "r");
FILE*fout=fopen("sdo.out", "w");
int n, i, begin, end, aux, b, e, k, pivot;
fscanf(fin, "%d%d", &n, &k);
for(i=0; i<n; i++)
fscanf(fin, "%d", &v[i]);
k--;
begin=0;
end=n-1;
while(begin<end){
pivot=v[(begin+end)/2];
b=begin;
e=end;
while(b<=e){
while(v[b]<pivot)
b++;
while(v[e]>pivot)
e--;
if(b<=e){
aux=v[b];
v[b]=v[e];
v[e]=aux;
b++;
e--;
}
}
if(k<=e)
end=e;
else
if(k>=b)
begin=b;
else
begin=end=k;
}
fprintf(fout, "%d\n", v[k]);
fclose(fin);
fclose(fout);
return 0;
}