Task 97. Место в строю

Task 97. Место в строю

UniLecs

Задача: снова урок физкультуры, дети стоят в строю по росту (первый самый высокий, последний - самый низкий). Ваня опоздал на урок и ему нужно встать на свое место в строю. Необходимо определить место (номер в строю) куда нужно встать Ване. Если в строю есть люди с таким же ростом как у Вани, то он должен встать после них.

Входные данные: X - рост Вани; Arr - убывающий массив натуральных чисел, ктр содержит рост каждого человека в строю. Значения X и элементы массива Arr больше 0 и меньше 200. Длина массива Arr не больше 1000.

Вывод: вывести место (номер в строю), куда Ваня должен встать (нумерация в строю начинается с 1).

Пример: X = 152; Arr = [155, 153, 150, 150, 147, 145, 144]

Answer = 3

Идея: нужно найти индекс в отсортированном массиве по заданному значению X - это одна из классических задач по бинарному поиску.

Почитать подробнее про бинарный поиск можно тут:

Реализация:

C#

https://gist.github.com/unilecs/46141fa8bc3c7d675014840bf32b4f8d

Test:

https://dotnetfiddle.net/HTepA8

Report Page