Pagini recente » Cod sursa (job #416079) | Cod sursa (job #2745948) | Cod sursa (job #2004826) | Cod sursa (job #1999153) | Cod sursa (job #654818)
Cod sursa(job #654818)
/*
* File: Statisticideordine.cpp
* Author: slycer
*
* Created on December 30, 2011, 10:35 PM
*/
#include <cstdlib>
#include <fstream>
using namespace std;
void swap( int *,int,int);
/*
*
*/
int main(int argc, char** argv) {
ifstream input("sdo.in");
ofstream output("sdo.out");
int n,k;
input >> n >> k;
int *data = new int[n];
for ( int i=0; i<n; i++){
int c;
input >> c;
data[i] = c;
}
k--;
int left=0;
int right=n-1;
int m;
while ( true ){
m = (right+left)/2;
swap(data,left,m);
m=left;
for ( int j=left+1; j<=right; j++ ){
if ( data[left]>data[j] ){
m++;
swap(data,m,j);
}
}
swap(left,m);
if ( m == k ){
break;
}
if ( k < m ){
right = m-1;
} else {
left = m+1;
}
}
output << data[m];
return 0;
}
void swap( int *data, int i, int j){
int aux = data[i];
data[i] = data[j];
data[j] = aux;
}