Pagini recente » Cod sursa (job #2760474) | Cod sursa (job #1502496) | Cod sursa (job #1687888) | Cod sursa (job #2401496) | Cod sursa (job #658252)
Cod sursa(job #658252)
#include<fstream>
#include<cstdlib>
#include<stdio.h>
#include<time.h>
using namespace std;
ifstream in("sdo.in");
ofstream out("stdo.out");
int a[1000],n,k;
void citire()
{in>>n>>k;
for(int i=1;i<=n;i++)
in>>a[i];
}
int pivot(int st,int dr)
{int i=st-1,j=dr-1;
int piv=a[st+(rand()%(dr-st+1))];
while(i<j){
while(a[i]< piv)i++;
while(a[j]>piv) j--;
if(i<j){int b=a[i];
a[i]=a[j];
a[j]=b;}
else return j;
}
return 0;}
void quicks(int st,int dr,int k)
{int p=pivot(st-1,dr+1);
if(st==dr) return;
else if(k<p) quicks(st,p,k);
else quicks(p+1,dr,k);
}
int main()
{srand(time(NULL));
citire();
quicks(1,n,k);
out<<a[k];
return 0;}