Вопрос задан 24.02.2019 в 02:01. Предмет Информатика. Спрашивает Денисов Артём.

Задача Z. Угадай число Имя входного файла: стандартный ввод Имя выходного файла: стандартный вывод

Ограничение по времени: 2 секунды Ограничение по памяти: 256 мегабайт Это интерактивная задача. В процессе тестирования ваша программа будет взаимодействовать с программой жюри с использованием стандартных потоков ввода/вывода. Программа жюри загадала число от 1 до n, цель вашей программы — отгадать его. Для этого ваша программа сообщает свои догадки программе жюри, а программа жюри отвечает, является ли загаданное число большим, меньшим или равным сделанной догадке. Выполнено неравенство 1 ≤ n ≤ 109 . Ваша программа должна сделать не более 30 догадок. Протокол взаимодействия с программой жюри Сначала ваша программа должна прочитать из стандартного потока ввода число n. Затем протокол общения следующий: ваша программа выводит в стандартный поток вывода одну строку, содержащую число — свою догадку о загаданном числе. Делайте сброс буфера потока вывода после каждой догадки. Для этого используйте • flush(output) в паскале или Delphi; • fflush(stdout) или cout.flush() в С/C++; • System.out.flush() в Java. • sys.out.flush() в Python. После этого программа должна считать из стандартного потока ввода одно число: ответ программы жюри. Возможны следующие ответы: • 1 — загаданное число больше последней догадки; • −1 — загаданное число меньше последней догадки; • 0 — последняя догадка верна. Считав 0, ваша программа должна завершиться. Пример стандартный ввод стандартный вывод 5 -1 1 0 3 1 2
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Воленчук Дашенька.
Var
    n, l, r, m, k: integer;
begin
    read(n);
    l := 1;
    r := n;
    while (r - l > 1) do
    begin
        m := (l + r) div 2;
        writeln(m);
        read(k);
        if (k = 0) then
            halt(0)
        else if (k = 1) then
            l := m
        else
            r := m;
    end;
    writeln(l);
    read(k);
    if (k <> 0) then
        writeln(r);
end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Задача Z представляет собой интерактивную задачу, в которой ваша программа должна угадать число, загаданное программой жюри. Вам предоставляется протокол взаимодействия с программой жюри, а также ограничения по времени и памяти.

Протокол взаимодействия с программой жюри:

1. Сначала ваша программа должна прочитать из стандартного потока ввода число n. 2. Затем ваша программа должна выводить в стандартный поток вывода свою догадку о загаданном числе. 3. После каждой догадки ваша программа должна сбросить буфер потока вывода. 4. После вывода догадки ваша программа должна считать из стандартного потока ввода ответ программы жюри. 5. Возможные ответы программы жюри: - 1: загаданное число больше последней догадки. - -1: загаданное число меньше последней догадки. - 0: последняя догадка верна. 6. Если ваша программа считывает ответ 0, она должна завершиться.

Ограничения:

- 1 ≤ n ≤ 10^9. - Ваша программа должна сделать не более 30 догадок.

Теперь, когда мы разобрались с условием задачи, вы можете приступить к написанию программы, которая будет угадывать число, загаданное программой жюри. Удачи!

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос