Pagini recente » Cod sursa (job #139830) | Cod sursa (job #1960508) | Cod sursa (job #470344) | Cod sursa (job #3245108) | Cod sursa (job #623999)
Cod sursa(job #623999)
#include<fstream>
#include<algorithm>
#define NMAX 3000005
using namespace std;
int a[NMAX], n, k;
ifstream f("sdo.in");
ofstream g("sdo.out");
void Citeste()
{
int i;
f>>n>>k;
for (i=1; i<=n; ++i) f>>a[i];
}
int part(int st, int dr)
{
int s=st, d=dr, p=a[st];
while(s<=d)
{
while (a[s]<=p) ++s;
while (a[d]>p) --d;
if(s<d) swap(a[s], a[d]);
}
swap(a[d], a[st]);
return d;
}
void Quick(int st, int dr)
{
int poz;
if (st>=dr) return;
else
{
poz=part(st, dr);
if (k<poz) Quick(st, poz-1);
else Quick(poz+1, dr);
}
}
int main()
{
Citeste();
Quick(1, n);
g<<a[k]<<"\n";
f.close();
g.close();
return 0;
}