Cod sursa(job #1044880)

Utilizator miu.teoMiu Teodor miu.teo Data 30 noiembrie 2013 16:06:29
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include<fstream>
#include<cstdlib>
#define Nmax 3000002
using namespace std;
ifstream f("sdo.in");
ofstream f2("sdo.out");
int k,n,v[Nmax],i;

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)
     {
         v[i]=v[i]+v[j];
         v[j]=v[i]-v[j];
         v[i]=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()
{f>>n>>k;
for(i=1;i<=n;i++)
    f>>v[i];
quicksort(v,1,n,k);
f2<<v[k];
f.close();
f2.close();
return 0;
}