Cod sursa(job #760560)

Utilizator Theorytheo .c Theory Data 21 iunie 2012 20:19:25
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 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 <= N; step <<= 1);

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

bool verifica(int x)
{
//    if(x >kstat)
//        return false;
//    return true;
    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 <<bs();
    fin.close();

    return 0;
}