Cod sursa(job #1044863)

Utilizator miu.teoMiu Teodor miu.teo Data 30 noiembrie 2013 15:47:38
Problema Statistici de ordine Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
void interschimbare(int &a,int &b)
{int aux;
aux=a;
a=b;
b=aux;

}
void quicksort(int v[],int left,int right,int k)
{int i,j,p;
i=left;
j=right;
p=v[rand()%(i+j)];
 while(i<=j)
 {
     while(v[i]<p)
        i++;
     while(v[j]>p)
        j--;
     if(i<=j)
     {
         interschimbare(v[i],v[j]);
         i++;j--;
     }
 }
if(p==v[k]&&k>i&&k<j)
    return;
 if(j>left)
    quicksort(v,left,j,k);
 if(i<right)
 quicksort(v,i,right,k);

}
int main()
{int k,n=0,*v;
ifstream f("sdo.in");
ofstream f2("sdo.out");
f>>n;
v=new int[n];
f>>k;
for(int i=0;i<n;i++)
    f>>v[i];
quicksort(v,0,n-1,k-1);
f2<<v[k-1];

return 0;
}