Cod sursa(job #1014468)

Utilizator Dayanna000Amegica Dayanna Dayanna000 Data 22 octombrie 2013 19:21:54
Problema Statistici de ordine Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
long a[3000001],n,k;
ifstream f("sdo.in");
ofstream g("sdo.out");
void quicksort(long a[], long stanga, long dreapta)
    {
       long i, j, piv, aux,x;
       i=stanga;
       j=dreapta;
       x=rand()%(j-i)+i;
       piv=a[x];
       srand(time(0));

      while(i<=j)
      {
       while(a[i]<piv)
          i++;
       while(a[j]>piv)
          j--;
        if(i<=j)
        {
           aux=a[i];
           a[i]=a[j];
           a[j]=aux;
           i++;
           j--;
         }
      }
     if(x==k)
       g<<a[x];
       else
     if((k<x) && stanga<j)
       quicksort(a, stanga, x);
       else
     if(k>x && i<dreapta)
       quicksort(a, x, dreapta);

    }

  int main()
{
    long i,j,l;
    srand(time(0));
    f>>n>>k;
    for(i=1;i<=n;i++)
          f>>a[i];
    quicksort(a,1,n);
    f.close();
    g.close();
    return 0;
}