Pagini recente » Cod sursa (job #1405569) | Cod sursa (job #1650774) | Cod sursa (job #1637618) | Cod sursa (job #1781302) | Cod sursa (job #2942869)
#include <iostream>
#include <fstream>
#define Nmax 3000000
using namespace std;
ifstream fin ("sdo.in");
ofstream fout ("sdo.out");
int K,N;
unsigned int v[Nmax];
int Quick_Select(unsigned int arr[], int in, int sf, int k)
{
unsigned int Pivot=arr[sf];
int elem=in-1;
///Partionare
int aux;
for (int i=in;i<sf;i++)
{
if (arr[i]<=Pivot)
{
elem++;
///swap
aux=arr[i];
arr[i]=arr[elem];
arr[elem]=aux;
}
}
aux=arr[elem+1];
arr[elem+1]=arr[sf];
arr[sf]=aux;
elem++;
if (k==elem)
return Pivot;
else if (k<elem)
return Quick_Select(arr,in,elem-1,k);
else
return Quick_Select(arr,elem+1,sf,k);
}
int main()
{
fin>>N>>K;
K--;
for (int i=0;i<N;i++)
fin>>v[i];
fout<<Quick_Select(v,0,N-1,K);
return 0;
}