Cod sursa(job #1011666)

Utilizator PlatonPlaton Vlad Platon Data 17 octombrie 2013 09:27:44
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("sdo.in");
ofstream g("sdo.out");

int a[3000000];
int n,m;

inline void swap(int i, int j)
{
    int t = a[i];
    a[i] = a[j];
    a[j] = t;
}

void sort(int st, int dr) {
      int i = st, j = dr;
      int t;
      int pivot = a[(st+dr)/2];

      while (i <= j) {
            while (a[i] < pivot)
                  i++;
            while (a[j] > pivot)
                  j--;
            if (i <= j) {
                  swap(i,j);
                  i++;
                  j--;
            }
      };

      if(j>m-j)
      {
          if (st < j)
            sort(st, j);
          if (i < dr)
            sort(i, dr);
      }


    for(int i=0;i<8;i++)
    {
        cout<<a[i]<<" ";
    }cout<<endl;
}

int main()
{
    f>>n>>m;
    for(int i=0;i<n;i++)
    {
        f>>a[i];
    }

    sort(1,n-1);

    for(int i=0;i<n;i++)
    {
        cout<<a[i]<<" ";
    }

    g<<a[m-1];

    return 0;
}