Pagini recente » Cod sursa (job #1164084) | Cod sursa (job #2266596) | Cod sursa (job #1271213) | Cod sursa (job #1107521) | Cod sursa (job #1448873)
#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
#define MAXN 30000
using namespace std;
void nth( int v[], int poz, int init, int n )
{
int aux = v[ init ];
v[ init ] = v[ n - 1 ];
v[ n - 1 ] = aux;
int loc = 0;
for( int j = 0; j < n; j++ )
{
if( v[ j ] < v[ n-1 ] )
{
aux = v[ j ];
v[ j ] = v[ loc ];
v[ loc++ ] = aux;
}
}
if( loc != poz )
{
srand(time(NULL));
init = rand()%n;
nth( v, poz, init, n);
}
else
{
aux = v[ loc ];
v[ loc ] = v[ n - 1 ];
v[ n - 1 ] = aux;
}
}
int main()
{
ifstream f( "sdo.in");
ofstream g( "sdo.out");
int v[ MAXN ], n, k, i;
f >> n >> k;
for ( int i = 0; i < n; i++ )
f >> v[ i ];
srand(time(NULL));
nth( v, k - 1, rand()%n , n);
g << v[ k - 1 ];
f.close();
g.close();
return 0;
}