Pagini recente » Cod sursa (job #2070694) | Cod sursa (job #525861) | Cod sursa (job #3197382) | Cod sursa (job #659753) | Cod sursa (job #1896301)
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream fin ("sdo.in");
ofstream fout ("sdo.out");
int v[3000010],A[3000010],st,dr,mid,i,n,sol,k;
int part(int &st, int &dr){
int pivot=v[st-rand()%(dr+2)+dr-rand()%(st+2)];
while(st<=dr){
while(v[st]<pivot)
st++;
while(v[dr]>pivot)
dr--;
if(st<=dr){
int aux=v[st];
v[st]=v[dr];
v[dr]=aux;
st++,dr--;
}
}
}
int quick (int st, int dr){
int left=st,right=dr;
part(left,right);
if(st<right)
quick(st,right);
if(left<dr)
quick(left,dr);
}
int main () {
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>v[i];
quick(1,n);
fout<<v[k];
}