Pagini recente » Rating Masca Andrei (Andy_Masca) | Cod sursa (job #3194598) | Cod sursa (job #17244) | Cod sursa (job #1150645) | Cod sursa (job #2323879)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <ctime>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
unsigned int a[3000005], n, k, rasp;
unsigned int det(unsigned int p, unsigned int u)
{
unsigned int poz=rand()%(u-p+1)+p;
swap(a[p], a[poz]);
unsigned int pivot=a[p];
while(p<u)
{
while(p<u&&a[u]>=pivot)
u--;
a[p]=a[u];
while(p<u&&a[p]<=pivot)
p++;
a[u]=a[p];
}
a[p]=pivot;
return p;
}
void caut(unsigned int p, unsigned int u)
{
if(p==u)
return;
unsigned int poz=det(p, u);
if(poz==k)
return;
if(poz>k)
caut(p, poz-1);
else if(poz<k)
caut(poz+1, u);
}
int main()
{
srand(time(NULL));
f >> n >> k;
for(int i=1; i<=n; i++)
f >> a[i];
caut(1, n);
g << a[k];
return 0;
}