Pagini recente » Cod sursa (job #1793516) | Cod sursa (job #2604792) | Cod sursa (job #472584) | Cod sursa (job #573774) | Cod sursa (job #1462184)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 3000000
int v[MAXN],k;
void mynthelement(int begin,int end){
int b=begin,e=end,aux,pivot=v[b+rand()%(e-b+1)];
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(begin<e&&k<=e)
mynthelement(begin,e);
if(b<end&&k>=b)
mynthelement(b,end);
}
int main(){
FILE*fi,*fout;
int n,i;
fi=fopen("sdo.in" ,"r");
fout=fopen("sdo.out" ,"w");
fscanf(fi,"%d%d" ,&n,&k);
k--;
for(i=0;i<n;i++)
fscanf(fi,"%d" ,&v[i]);
mynthelement(0,n-1);
fprintf(fout,"%d" ,v[k]);
fclose(fi);
fclose(fout);
return 0;
}