Cod sursa(job #2699733)

Utilizator Alex_DiaconuDiaconu Alexandru Alex_Diaconu Data 25 ianuarie 2021 18:45:34
Problema Statistici de ordine Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#include <fstream>

using namespace std;

ifstream cin ("sdo.in");
ofstream cout ("sdo.out");

int v[3000001], c[3000001];

void Sort (int left,int right)
{
    if (left==right)
    {
        return;
    }
    Sort(left,(right+left)/2);
    Sort((left+right)/2+1,right);
    int a=left,b=(left+right)/2+1;
    for (int i=left; i<=right; i++)
    {
        if (a>(left+right)/2)
        {
            for (int j=i; j<=right; j++)
            {
                c[j]=v[b];
                b++;
            }
            break;
        }
        else if (b>right)
        {
            for (int j=i; j<=right; j++)
            {
                c[j]=v[a];
                a++;
            }
            break;
        }
        else if (v[a]<=v[b])
        {
            c[i]=v[a];
            a++;
        }
        else if (v[a]>v[b])
        {
            c[i]=v[b];
            b++;
        }
    }
    for (int i=left; i<=right; i++)
    {
        v[i]=c[i];
    }
}

int main()
{
    int n, k;
    cin >> n >> k;
    for (int i=1; i<=n; i++)
    {
        cin >> v[i];
    }
    Sort(1,n);
    cout << c[k];
    return 0;
}