Pagini recente » Cod sursa (job #1047351) | Cod sursa (job #2962837) | Cod sursa (job #1194380) | Cod sursa (job #3168727) | Cod sursa (job #710565)
Cod sursa(job #710565)
#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;
}