Cod sursa(job #742389)
Utilizator | mihai995 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;
}