Pagini recente » Cod sursa (job #1293215) | Cod sursa (job #1398029) | Cod sursa (job #2752662) | Cod sursa (job #2709329) | Cod sursa (job #2219765)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
long long n,k,a[3000001];
unsigned int partitionare(long long st,long long dr)
{
long long mij,aux,i,j;
mij=a[(st+dr)/2];
i=st-1;
j=dr+1;
while(i<j)
{
do
{
i++;
}
while(a[i]<mij);
do
{
j--;
}
while(a[j]>mij);
if(i<j)
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
return j;
}
void statistica(long long st,long long dr)
{
long long poz;
poz=partitionare(st,dr);
//cout<<poz<<" ";
if(poz==k)
{
g<<a[k]<<" ";
}
else
{
if(poz<k)
{
statistica(poz,dr);
}
else
{
statistica(st,poz);
}
}
}
int main()
{
long long i;
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>a[i];
}
statistica(1,n);
return 0;
}