Cod sursa(job #1358169)

Utilizator AdrianSLHamod Adrian AdrianSL Data 24 februarie 2015 13:53:18
Problema Statistici de ordine Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>

using namespace std;

ifstream fin("sdo.in");
ofstream fout("sdo.out");
int M,k, A[3000001];
void QUICKSORT(int inf,int sup)
{
  int x,i,j,t,r=0;
  i=inf;
  j=sup;
  x=A[(i+j)/2];
  do{
    while ((i<sup)&&(A[i]<x)) i++;
    while ((j>inf)&&(A[j]>x)){if(A[k]>A[j])r=1; j--;}
    if (i<=j)
    {
      t=A[i];
      A[i]=A[j];
      A[j]=t;
      i++;
      j--;
    }
  }while (i<=j);
  if(!r)
  {if (inf<j) QUICKSORT(inf,j);
  if (i<sup) QUICKSORT(i,sup);
  }
}
int main()
{
    fin>>M>>k;
    for(int i=1;i<=M;i++)fin>>A[i];
    QUICKSORT(1,M);
    fout<<A[k];
    return 0;
}