Cod sursa(job #373531)

Utilizator titusuTitus C titusu Data 13 decembrie 2009 23:35:48
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
using namespace std;
#include <fstream>
int a[3000005], n, k;

void read(){
	ifstream fin("sdo.in");
	fin>>n>>k;
	for(int i=1;i<=n;i++) fin>>a[i];
}

void write(){
	ofstream fout("sdo.out"); 	fout<<a[k];
}

void sdo(int st,int dr){
	int i=st, j=dr, aux, d=(st+dr)/2;
	aux=a[st]; a[st]=a[d]; a[d]=aux;
	d=0;
	while(i<j){
		if(a[i]>a[j])
			aux=a[i], a[i]=a[j], a[j] = aux, d=1-d;
		i+=d;
		j-=1-d;
	}
	if(k<i)
		sdo(st,i-1);
	else
		if(k>i)
			sdo(i+1,dr);
}

int main(){
		read();sdo(1,n); write(); return 0;
	}