Олимпиадный тренинг

Задача . Бинарный поиск. Рекурсия_Реализация


Задача

Темы:
Для реализации рекурсивного бинарного поиска (вещественного) Вам необходимо реализовать функции bs 
Функция bs должна иметь заголовок
auto bs(double L, double R, double acc, int p), где:
  • L, R -  границы отрезка для поиска ответа;
  • acc - параметр, определяющий что достигнута нужная точность.
    Достижение нужной точности определяется ответом функции int dov(double L,double R,double acc)
    - возвращает ответ 1, если точность достигнута,  и любое целое число в противном случае (требуемая точность не достигнута)
  • p - параметр, определяющий "ответ поиска". Проверка результата проверяется с помощью вызова функции int check(double X, int p)
    Функция check(X, p) возвращает 1 если значение подходит и любое другое целое число, если не подходит..
    Гарантируется, что для входных/начальных значений check(R, p) == 1, а check(L, p) != 1
Ваша задача реализовать рекурсивную функцию  bs так,
чтобы она находила и возвращала два значения X, Y удовлетворяющие условиям:
  • dov(X, Y, acc) == 1 
  • check(X, p) != 1
  • check(Y, p) == 1
для возврата значений X, Y воспользуйтесь моделью return tuple(X, Y);

Пояснения:
  1. Вам надо дописать только недостающую часть кода
  2. При решении нельзя использоваться циклические структуры, массивы и  вектора
  3. Изменять значения параметров acc, p не рекомендуется. Используйте их только как параметры
    функций проверок check и dov


time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w642
Комментарий учителя