Pagini recente » Cod sursa (job #2278236) | Cod sursa (job #3246595) | Cod sursa (job #2918256) | Cod sursa (job #519003) | Cod sursa (job #2183481)
#include <bits/stdc++.h>
using namespace std;
ifstream in("sdo.in");
ofstream out("sdo.out");
int n, k, p, aux;
int arr[3000005];
int poz( int st, int dr )
{
int d_st = 0, d_dr = -1;
while( st != dr )
{
if( arr[st] > arr[dr] )
{
swap( arr[st], arr[dr] );
aux = d_st;
d_st = -d_dr;
d_dr = -aux;
}
st += d_st;
dr += d_dr;
}
return st;
}
void sorteaza( int st, int dr, int t )
{
if( st < dr )
{
p = poz( st, dr );
if( p > t )
sorteaza( st, p - 1, t );
else if( p < t )
sorteaza( p + 1, dr, t );
else
return;
}
}
int main()
{
in>>n>>k;
for( int i = 1; i <= n; i++ )
in>>arr[i];
/*srand( time(0) );
for( int i = n; i >= 2; i-- )
swap( arr[i], arr[ 1 + rand()%(i-1) ] );*/
sorteaza( 1, n, k );
out<<arr[k];
return 0;
}