Cod sursa(job #1438120)

Utilizator o_micBianca Costin o_mic Data 19 mai 2015 00:43:42
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <ctime>
#include <iomanip>
#define UI long long
#define DN 3000005

using namespace std;

int main(){
	UI n, x;
	int pos, left, right, st;
	UI v[DN];
	ifstream fin("sdo.in");
	ofstream fout("sdo.out");
	fin >> n >> st;
	--st;
	for(int i = 0; i < n; ++i){
		fin >> v[i];
	}
	left = 0, right = n;
	do {
		srand(time(NULL));
		pos = left + rand() % (right-left);
		for(int i = left; i < right; ++i){
			if((v[i] < v[pos] && i > pos) || (v[i] > v[pos] && i < pos)){
				swap(v[i], v[pos]);
				pos = i;
			}
		}
		if(pos <= st)
			left = pos + 1;
		else
			right = pos;
	} while(pos != st);
	fout << v[pos];
	return 0;
}