Cod sursa(job #2932464)

Utilizator ciacliboiiiciacli stefan ciacliboiii Data 2 noiembrie 2022 22:23:08
Problema Statistici de ordine Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int n, m, v[300000001];
int quick(int ls, int ld)
{
    int i0 = 1, j0 = 0;
    int i = ls, j = ld;
    while(i < j)
    {
        if(v[i] > v[j])
        {
            swap(v[i], v[j]);
            if(i0 == 0)
                i0 = 1, j0 = 0;
            else
                i0 = 0, j0 = -1;
        }
        i += i0;
        j += j0;
    }
    return i;
}
int dei(int ls, int ld)
{
    if(ls < ld)
    {
        int p = quick(ls, ld);
        if(p == m)
        {
            fout << v[p];
            exit(0);
        }
        else
        {
            if(p > m)
                dei(ls, p - 1);
            else
                dei(p + 1, ld);
        }
    }
}
int main()
{
    fin >> n >> m;
    for(int i = 1; i <= n; ++ i)
        fin >> v[i];
    dei(1, n);
    fout << v[m];
    return 0;
}