Cod sursa(job #1921497)

Utilizator bt.panteaPantea Beniamin bt.pantea Data 10 martie 2017 12:55:47
Problema Statistici de ordine Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#define NMAX 3000005
using namespace std;
ifstream f ("sdo.in");
ofstream g ("sdo.out");
int v[NMAX], n, k;
inline int Poz(int ls, int ld)
{
    int sw = 1;
    while (ls < ld)
    {
        if (v[ls] > v[ld])
        {
            swap(v[ls], v[ld]);
            sw = !sw;
        }
        ls += sw;
        ld -= !sw;
    }
    return ls;
}
int quick(int ls, int ld)
{
    int p;
    do
    {
        p = Poz(ls, ld);
        if (k < p) ld = p - 1;
        else ls = p + 1;
    } while (k != p);
    return v[k];
}

int main()
{
    f>>n>>k;
    k--;

    for (int i = 0; i < n; i++)
        f>>v[i];
    g<<quick(0, n - 1);
    return 0;
}