Аватар
Информатика, опубликовано 2018-08-22 19:49:12 by Гость

Задача 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

Аватар
Ответ оставил Гость

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.

Вопрос
Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.