Cod sursa(job #1275972)

Utilizator unudoitreiRusu Alexandru unudoitrei Data 25 noiembrie 2014 20:45:13
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
long long a[3000005];
void merge(int l,int m,int h)
{
    long long g,i,j,b[3000005],k;
    g=l;
    i=l;
    j=m+1;
    while((g<=m)&&(j<=h))
    {
        if(a[g]<=a[j])
        {
            b[i]=a[g];
            g++;
        }
        else
        {
            b[i]=a[j];
            j++;
        }
        i++;
    }
    if(g>m)
    {
        for(k=j;k<=h;k++)
        {
            b[i]=a[k];
            i++;
        }
    }
    else
    {
        for(k=g;k<=m;k++)
        {
            b[i]=a[k];
            i++;
        }
    }
    for(k=l;k<=h;k++) a[k]=b[k];
}
void merge_sort(int l,int h)
{
    long long m;
    if(l<h)
    {
        m=(l+h)/2;
        merge_sort(l,m);
        merge_sort(m+1,h);
        merge(l,m,h);
    }
}
int main()
{
    long long num,i;
    long long k;
    f>>num>>k;
    for(i=1;i<=num;i++)
    {
        f>>a[i];
    }
    merge_sort(1,num);
    g<<a[k];
    g.close();
    return 0;
}