Cod sursa(job #1018009)

Utilizator vlad.florescu94FMI Florescu Vlad - Adrian vlad.florescu94 Data 28 octombrie 2013 19:29:53
Problema Statistici de ordine Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include<ctime>
#include<cstdlib>
#include<algorithm>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
long k,n,v[3000001],i,j,piv;
void qstat(long st, long dr)
{i=st;j=dr;
 piv=v[(st+dr)/2];
 while(i<=j)
   {while(v[i]<piv)
      i++;
    while(v[j]>piv)
      j--;
    if(i<=j)
      {long aux=v[i];v[i]=v[j];v[j]=aux;i++;j--;}
   }
 while(v[j]!=piv)
    j++;
 if(j==k)
    g<<piv;
 else
    if(j<k)
      qstat(j+1,dr);
    else
      qstat(st,j-1);
}
int main()
{f>>n>>k;
 for(i=1;i<=n;i++)
    f>>v[i];
 qstat(1,n);
 f.close();g.close();
 return 0;
}