Cod sursa(job #710565)

Utilizator Dragan_ValentinDragan Valentin Dragan_Valentin Data 9 martie 2012 23:38:39
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <iostream>

using namespace std;

int n;
int a[1000];


int search(int k,int a[1000],int n)
{
	int i;
	int lower=0,bigger=0;
	int pivot=a[rand()%n];
	int low[1000];
	int big[1000];
	cout<<"PIVOT: "<<pivot<<'\n';
	for (i=0; i<n; i++)
		if (a[i]<pivot) low[lower++]=a[i];
		else if (a[i]>pivot) big[bigger++]=a[i];
	cout<<" LOWER : "<<lower<<'\n';
	for (i=0; i<lower; i++)
		cout<<low[i]<<' ';
	cout<<'\n'<<"BIGGER: "<<bigger<<'\n';
	for (i=0; i<bigger; i++)
		cout<<big[i]<<' ';
	cout<<'\n';
	cout<<"K:"<<k<<'\n';
	if (k<=lower) { return search(k,low,lower); }
	else if (k<=n-bigger) return pivot;	
	else return search(k-n+bigger,big,bigger);
}







int main()
{
	int k,i;
	ifstream f("sdo.in");
	f>>n>>k;
	for (i=0; i<n; i++)
		f>>a[i];
	f.close();
	int k_number=search(k,a,n);
	ofstream g("sdo.out");
	g<<k_number;
	g.close();
	return 0;
}