Pagini recente » Cod sursa (job #1440249) | Cod sursa (job #2496558) | Cod sursa (job #1709068) | Cod sursa (job #2576614) | Cod sursa (job #373491)
Cod sursa(job #373491)
#include<fstream>
#include<ctime>
#include<cstdlib>
using namespace std;
int a[3000003];
void Quick(int* t,int st,int dr,int k) //Sortarea rapida
{int i=st,j=dr,w,piv=t[(i+j)/2];
do {while(t[i] < piv) i++; while(t[j] > piv) j--;
if(i <= j) {w=t[i]; t[i]=t[j]; t[j]=w; i++; j--;}
} while(j >= i);
int temp1=j-st+1;
int temp2=i-st+1;
if(st < j && k<temp1) Quick(t,st,j,k);
if(dr > i && temp2<k) Quick(t,i,dr,k-temp2);
}
int main()
{int n,k;
srand(time(NULL));
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
scanf("%d %d",&n,&k);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
Quick(a,1,n,k);
printf("%d",a[k]);
return 0;}