Pagini recente » Cod sursa (job #1518523) | Cod sursa (job #220451) | Cod sursa (job #823437) | Cod sursa (job #106169) | Cod sursa (job #2438810)
//Statistici de ordine
//qs cu pivotul valoarea din mijloc
#include<bits/stdc++.h>
#define nmax 3000001
using namespace std;
int n,v[nmax],k;
//verificat frumos cu exemplu si gandit
void quicksort(int st,int dr)
{
int i,j,x;
x=v[(st+dr)/2];
i=st;
j=dr;
do
{
while(i<dr && v[i]<x) i++;
while(j>st && v[j]>x) j--;
if(i<=j)
{
swap(v[i],v[j]);
i++;
j--;
}
}
while(i<=j);
//cout<<i<<' '<<j<<endl;
if(j>=k)
{
if(j>st)
quicksort(st,j);
}
else
{ if(i<dr)
quicksort(i,dr);
}
}
int main()
{
ifstream fin("sdo.in");
ofstream fout("sdo.out");
fin>>n>>k;
for(int i=1;i<=n;i++)
fin>>v[i];
quicksort(1,n);
fout<<v[k];
fin.close();
fout.close();
//for(int i=1;i<=n;i++)
//cout<<v[i]<<' ';
}