Pagini recente » Cod sursa (job #2518097) | Cod sursa (job #339829) | Cod sursa (job #1719871) | Cod sursa (job #2355796) | Cod sursa (job #2212003)
#include <iostream>
#include <fstream>
#define Dim 3000000
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
long Partitie(long,long);
long N,K,Valori[Dim];
bool gata=0;
long Partitie(long st,long dr)
{
long x=Valori[st],aux;
st--; dr++;
while(st<dr)
{
do
{
dr--;
}while(Valori[dr]<=x);
do
{
st++;
}while(Valori[st]>=x);
if(st<dr)
{
aux=Valori[dr];
Valori[dr]=Valori[st];
Valori[st]=aux;
}
else
{
if(K==dr) { g<<x; gata=0;}
return dr;
}
}
}
void Statistici(long start,long stop)
{
if(start<stop&&gata==1)
{
long p=Partitie(start,stop);
if(K<p&&gata==1)
Statistici(start,p);
else
if(K>p&&gata==1)
Statistici(p+1,stop);
}
}
int main()
{
f>>N>>K;
for(long i=1;i<=N;i++) f>>Valori[i];
Statistici(1,N);
return 0;
}