Pagini recente » Cod sursa (job #271365) | Cod sursa (job #1510434) | Cod sursa (job #509896) | Cod sursa (job #2579191) | Cod sursa (job #1588706)
#include <fstream>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int v[3000001],i,j,n,m,k;
void svap( int &a , int &b )
{
int aux;
aux = a;
a = b;
b = aux;
return;
}
void solve( int l, int r, int k )
{
if( l == r )
{
fout<<v[ l ];
return;
}
int p = ( l + ( r - l ) / 2 );
int z = v[ p ];
int s = l,d = r;
for( int i = l ; i <= d ; i++ )
{
if( v[ i ] > z )
{
svap( v[ d-- ] , v[ i ] );
i--;
}
}
if( v[ p + 1 ] >= v[ p ] )
svap( v[ p ] , v[ d ] );
if( k == d )
fout<<v[ d ];
else if( k < d )
solve( l , d - 1 , k );
else
solve( d + 1 , r , k );
}
int main()
{
fin>>n>>k;
for( i = 1 ; i <= n ; i++ )
{
fin>>v[ i ];
}
solve( 1 , n , k );
return 0;
}