Pagini recente » Cod sursa (job #800343) | Cod sursa (job #827316) | Cod sursa (job #1801043) | Cod sursa (job #2208783) | Cod sursa (job #624000)
Cod sursa(job #624000)
#include<fstream>
#include<algorithm>
#define NMAX 3000010
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;
poz=part(st, dr);
if (poz==k) g<<a[k]<<"\n";
else
if (k<poz) Quick(st, poz-1);
else Quick(poz+1, dr);
}
int main()
{
Citeste();
Quick(1, n);
f.close();
g.close();
return 0;
}