Cod sursa(job #742389)

Utilizator mihai995mihai995 mihai995 Data 29 aprilie 2012 22:35:47
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
using namespace std;

const int N = 3000005;
int sir[N], n, k;

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

bool okay(int x)
{
    int nr = 0;
    for (int i = 1 ; nr < k && i <= n ; i++)
        if (sir[i] <= x)
            nr++;
    return nr < k;
}

int bs()
{
    int i, step = 1 << 29;

    for (i = 0 ; step ; step >>= 1)
        if (okay(i + step))
            i += step;
    return i + 1;
}

int main()
{
    in >> n >> k;
    for (int i = 1 ; i <= n ; i++)
        in >> sir[i];

    out << bs() << "\n";

    return 0;
}