Cod sursa(job #2670552)

Utilizator DauCuDalta43Diaconu Razvan DauCuDalta43 Data 10 noiembrie 2020 10:38:43
Problema Statistici de ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("sdo.in");
ofstream fout("sdo.out");

int a[3000005],n,k;

int Pivot(int st,int dr)
{
    int i,j,piv;
    j=(st+dr)/2;
    swap(a[j],a[st]);
    piv=a[st];
    j=st;
    for(i=st+1;i<=dr;i++)
        if(a[i]<=piv)
        {
            j++;
            swap(a[i],a[j]);
        }
    swap(a[st],a[j]);
    return j;
}

void QSort(int st,int dr)
{
    int p=Pivot(st,dr);
    if(st<p-1)QSort(st,p-1);
    if(dr>p+1)QSort(p+1,dr);
}

int Cauta(int st,int dr)
{
    int p=Pivot(st,dr);
    if(p==k)return a[p];
    if(p<k)return Cauta(p+1,dr);
    return Cauta(st,p-1);
}

void Citire()
{
    int i;
    fin>>n>>k;
    for(i=1;i<=n;i++)
        fin>>a[i];
}

void Afisare()
{
    int i;
    for(i=1;i<=n;i++)
        fout<<a[i]<<" ";
}

int main()
{
    Citire();
    fout<<Cauta(1,n);
    return 0;
}