Cod sursa(job #1019848)

Utilizator St_ionut1989Stoian Ionut St_ionut1989 Data 31 octombrie 2013 23:40:30
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>

using namespace std;

int a[100], k, n;

void pivot(int li, int ls, int & k, int a[100])
{
	int i = li, j = ls, c, i1 = 0, j1 = -1;
	while(i < j)
	{
		if(a[i] > a[j])
		{
			c = a[i];
			a[i] = a[j];
			a[j] = c;
			c = i1;
			i1 = -j1;
			j1  = -c;
		}
		i += i1;
		j += j1;
	}
	k = i;
}

int quick(int li, int elem, int ls)
{
	if(li < ls)
	{
		pivot(li, ls, k, a);
		if(elem < k)
			quick(li, elem, k - 1);
		else 
			if(elem > k)
				quick(k + 1, elem, ls);
			else 
				if(elem == k)
					return a[k];
			
	}
	else 
		return 0;
}

int main()
{
	int elem, n, k;
	ifstream f;
	ofstream g;
	f.open("sdo.in.txt");
	g.open("sdo.out.txt");
	f>>n>>elem;
	for(int i = 1; i <= n; i++)
		f>>a[i];
	k = quick(1,elem,n);
	g<<k;
	
	return 0;
	
}