Cod sursa(job #2323447)

Utilizator CristianaMelinceanuMelinceanu Cristiana CristianaMelinceanu Data 19 ianuarie 2019 10:59:10
Problema Statistici de ordine Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <iostream>
#include <fstream>

using namespace std;

int x[100];
int h=1;
int v[100];
void merges(int l,int r)
{
    if(l==r)
        return;
    int m=(l+r)/2;
    merges(l,m);
    merges(m+1,r);
    int i=l;
    int j=m+1;
    while(i<=m && j<=r)
    {
        if(v[i]>v[j])
        {
            x[h]=v[j];
            h++;
            j++;}
        else
        {
            x[h]=v[i];
            h++;
            i++;
        }
    }
    if(i==m+1 && j<=r)
    {
        for(int f=j;f<=r;f++)
        {
            x[h]=v[f];
            h++;
        }
    }
    else
    {
        if(i<=m && j==r+1)
            for(int f=i;f<=m;f++)
            {
                x[h]=v[f];
                h++;
            }

    }
    for(i=r;i>=l;i--)
       {
            h--;
            v[i]=x[h];

       }

}
int main()
{
    ifstream f("sdo.in");
    ofstream g("sdo.out");
    int n,k;
    f>>n>>k;

    for(int i=1;i<=n;i++)
        f>>v[i];
    merges(1,n);
    for(int i=1;i<=n;i++)
        cout<<v[i]<<" ";
    g<<v[k]<<endl;
    return 0;
}