Cod sursa(job #2554730)

Utilizator Florinos123Gaina Florin Florinos123 Data 23 februarie 2020 12:34:17
Problema Statistici de ordine Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>

using namespace std;

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

int n, i, poz;
int v[3000005], aux[3000005];

void mergesort (int st, int dr)
{
    if (st < dr)
    {
        int mij = (st + dr) / 2;
        mergesort(st, mij);
        mergesort(mij+1, dr);

        int i = st, j = mij+1, k = 0;
         while (i <= mij && j <= dr)
         {
             if (v[i] < v[j])
             {
                k ++, aux[k] = v[i];
                i ++;
             }
             else {
                k ++, aux[k] = v[j];
                j ++;
             }
         }
         while (i <= mij)
         {
             k ++, aux[k] = v[i];
             i ++;
         }
         while (j <= dr)
         {
             k ++, aux[k] = v[j];
             j ++;
         }
       for (i=st, j=1; i<=dr; i++, j++)
            v[i] = aux[j];
    }
}

int main()
{
  f >> n >> poz;
   for (i=1; i<=n; i++)
     f >> v[i];
  mergesort(1, n);
   g << v[poz];
    return 0;
}