Cod sursa(job #760561)

Utilizator Theorytheo .c Theory Data 21 iunie 2012 20:29:12
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>
#define nmax 3000006
using namespace std;

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

int N, v[nmax], kstat;
bool verifica(int);
int bs()
{
    int step = 1, i;
    for( ; step <= 1<<31; step <<= 1);

   // fout <<step <<'\n';
    for(i = 0; step ; step >>= 1)
        while( verifica(i+step)  )
            i+=step ;//,fout << i <<'\n';
        return i;
}

bool verifica(int x)
{

    int nr = 0 ;
    for(int i = 1; i <= N; i++)
        if(v[i] <= x)
        nr++;
    if(nr <= kstat)
        return true;
    return false;

}
int main()
{
    fin >>N >> kstat;
    for(int i = 1; i <= N; i++)
        fin >>v[i];
    //fout<<verifica(12)<<'\n';
    fout << bs();
    fin.close();

    return 0;
}